![](/img/trans.png)
[英]How to change Tab Bar Background color and Tab Bar Item color on Storyboard
[英]Change tab bar item selected color in a storyboard
我想在選擇時將我的標簽欄項目更改為粉紅色,而不是默認的藍色。
如何使用 Xcode 6 中的故事板編輯器完成此操作?
這是我當前無法使用的設置,藍色背景有效,但粉紅色背景無效:
從 StoryBoard 添加名為“tintColor”的運行時顏色屬性。 這是有效的(對於 Xcode 8 及更高版本)。
如果你想要未選擇的顏色..你也可以添加unselectedItemTintColor
。
在 Swift 中,使用 xcode 7(及更高版本),您可以將以下內容添加到 AppDelegate.swift 文件中:
UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)
這是完整方法的樣子:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// I added this line
UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)
return true
}
在上面的例子中,我的項目是白色的。 “/255.0”是必需的,因為它需要一個從 0 到 1 的值。對於白色,我可以只使用 1。但是對於其他顏色,您可能會使用 RGB 值。
斯威夫特 3 | Xcode 10
如果您想讓所有標簽欄項目具有相同的顏色(選中和未選中)...
第1步
確保您的圖像資產設置為Render As = Template Image 。 這允許他們繼承顏色。
第2步
使用情節提要編輯器更改標簽欄設置,如下所示:
第 3 步
步驟 1 和 2 將更改所選圖標的顏色。 如果你還想改變未選中項的顏色,則需要在代碼中進行。 我還沒有找到通過故事板編輯器來做到這一點的方法。
創建自定義標簽欄控制器類...
// TabBarController.swift
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
// make unselected icons white
self.tabBar.unselectedItemTintColor = UIColor.white
}
}
...並將自定義類分配給您的標簽欄場景控制器。
如果您想知道如何通過故事板編輯器更改未選擇的圖標顏色,請告訴我。 謝謝!
將此代碼放在要更改顏色的視圖控制器的 viewDidLoad 中
[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
XCode 8.2、iOS 10、Swift 3:現在tabBar
有一個unselectedItemTintColor
屬性:
self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0)
您可以通過情節提要更改 UITabBarItem 的顏色,但如果您想通過代碼更改顏色,則非常簡單:
// 使用它來改變選定條的顏色
[[UITabBar appearance] setTintColor:[UIColor blueColor]];
// 這用於更改未選中的欄(iOS 10)
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];
// 此行用於更改所有標簽欄的顏色
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
不知何故,我們無法單獨使用情節提要更改選項卡欄所選項目的色調顏色,因此我在我的 ViewDidLoad 中添加了以下代碼,希望這會有所幫助。
[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
將此代碼添加到您的應用程序委托 -did_finish_launching_with_options 函數中
UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )
放入所需顏色的RGB
這是適用於 iOS 10 的 Swift 3 中的解決方案:
首先,您創建自己的標簽欄控制器子類並將其添加到故事板中的標簽控制器。 在viewDidLoad()
方法中,您可以自定義標簽欄。 這里需要說明的是, tabBar
的tintColor
屬性代表的是選中項的顏色,而不是未選中項的顏色! 為了更改未選擇項目的顏色,我建議循環遍歷每個項目並使用圖像的原始顏色,這樣它們就不會自動呈現為灰色。
class CustomTabBarVC: UITabBarController
{
override func viewDidLoad()
{
super.viewDidLoad()
self.tabBar.tintColor = AppColor.normalRed
self.tabBar.barTintColor = .white
self.tabBar.isTranslucent = true
if let items = self.tabBar.items
{
for item in items
{
if let image = item.image
{
item.image = image.withRenderingMode( .alwaysOriginal )
}
}
}
}
}
這種方法的唯一缺點是您的項目圖像必須已經具有您想要的顏色。
您可以UITabBarController
,並在故事板中用它替換那個。 在子類的viewDidLoad
實現中調用:
[self.tabBar setTintColor:[UIColor greenColor]];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.