我需要將UITabBar的選擇顏色從默認藍色更改爲紅色。我們如何做到這一點。如何更改UITabBar選擇顏色
回答
這個SDK並沒有使這個簡單,但它是在技術上可能。蘋果顯然認爲這是他們一致觀感的一部分。
UITabBar是UIView的子類。你總是可以繼承和實現你自己的-drawRect:
這不是一個簡單的任務,但是,你必須從頭開始重新實現這個類,否則你冒着一些奇怪的副作用。
iOS 5.0修復了這個問題,但解決方案是在NDA下。在您的文檔中查找UITabBar以簡單方式執行您想要的操作。
在IOS5中,UITabBar有一個selectedImageTintColor屬性,它可以滿足您的需求。
這是非常容易
創建一個自定義類的UITabBarController,並在-(void)viewDidLoad
方法中加入這一行:
[[self tabBar] setSelectedImageTintColor:[UIColor greenColor]];
但這會改變文本的顏色,而不是整個選擇區域。任何方式來實現這一目標? – 2015-02-09 05:53:37
已棄用ios 8 – codercat 2015-07-30 13:00:20
我一直在尋找一種方式來設置所選文本顏色一個UITabBarItem,並且使用UIAppearance協議發現了一個死的簡單方法。
[UITabBarItem.appearance setTitleTextAttributes:@{
UITextAttributeTextColor : [UIColor greenColor] } forState:UIControlStateNormal];
[UITabBarItem.appearance setTitleTextAttributes:@{
UITextAttributeTextColor : [UIColor purpleColor] } forState:UIControlStateSelected];
請原諒可怕的顏色!
已棄用UITextAttributeTextColor。最新的選擇是什麼? – 2017-04-25 07:28:04
在iOS 7中,它只是tintColor。做到這一點的一種方法是子類UITabBarViewController,設置在故事板自定義類,並在子類的tabBarVC的viewDidLoad
方法補充一點:
[[self tabBar] setTintColor:[UIColor redColor]];
因爲UITextAttributeTextColor在iOS的7棄用,你應該使用:
[UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor greenColor]} forState:UIControlStateNormal];
[UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor purpleColor]} forState:UIControlStateSelected];
更新2017年9月: 它已經兩年了,因爲我已經寫了這個答案,因爲它是定期接收upvotes,我應該說,這可能是最糟糕的回答這個問題,這是容易出錯,裏因爲iOS更新而難以調試等等,所以請不要執行我寫的東西,並應用更好的解決方案,例如UITabBar或UITabBarController的子類化。謝謝。
你可以通過爲你的UITabBar設置一個「tintColor」屬性(Key Path)來做到這一點。
- 在文檔大綱中選擇UITabBar。 (不是帶有黃色圖標的控制器。)
- 在Utilities區域中選擇Identity Inspector。
- 單擊「用戶定義的運行屬性」中的+。
- 添加類型爲「Color」的「tintColor」鍵路徑和所需的顏色。
這應該這樣做。您可以根據下面的屏幕截圖進行檢查。
更多內容: 有一個在UITabBar的身份檢查,我相信會做同樣的事情,但很顯然,它什麼都不做的「色調」屬性。它的默認值是選擇UITabBarItem時的確切默認填充顏色,所以我的猜測是它會在穩定版本Xcode 7中修復。手指交叉。
從iOS的8起它的那樣簡單:
UITabBar.appearance().tintColor = UIColor.redColor()
只要在我的情況下,其白更改以下屬性在Interface Builder爲的TabBar
明顯。
- 1. 如何更改UITabbar選擇的顏色?
- 2. 如何更改UITabBar顏色?
- 3. 如何將UITabbar所選標籤顏色的背景顏色更改爲藍色?
- 4. 更改UITabBar的色調/背景顏色
- 5. 更改UITabBar圖標的顏色
- 6. 如何更改UITabBar中[更多]按鈕的文字顏色?
- 7. 更改未選中的UITabBar項目的顏色iOS 9
- 8. 如何在選擇時將UITableViewCell的顏色更改爲藍色
- 9. 更改iOS8中更多菜單的UITabbar色調顏色
- 10. 如何更改應用程序委託中的UITabBar顏色?
- 11. 流星更改選擇標籤顏色
- 12. 更改選擇的視圖顏色
- 13. 更改選擇偏好的顏色
- 14. 更改菜單背景顏色選擇
- 15. 更改文本選擇顏色
- 16. 更改ListView的背景選擇顏色?
- 17. swt表更改選擇項目顏色
- 18. PrimeNG DataTable行選擇 - 更改顏色
- 19. 更改JavaFX TreeTableView的選擇顏色
- 20. 更改ListBoxItem的選擇顏色
- 21. Laravel表::選擇更改背景顏色
- 22. 更改JCheckBox/JRadioButton選擇顏色
- 23. 更改vim選擇的文本顏色
- 24. 更改用戶選擇顏色
- 25. 更改選擇顏色 - TableView/SplitView
- 26. SlidingTabLayout更改顏色選擇圖標
- 27. 更改文本選擇顏色
- 28. 更改tabHost&排名選擇顏色
- 29. 更改zedgraph選擇的曲線顏色
- 30. 更改文字的顏色上選擇
在iOS 8中棄用。 – KPM 2014-09-25 20:18:11
@KPM,我發現它已被棄用,但我們應該用什麼來代替?這仍然適用於iOS 8,因爲它值得。 – 2014-09-28 22:10:39
查看下面的凱爾的答案。 http://stackoverflow.com/a/18996564/364446 – KPM 2014-09-28 22:16:50