2017-03-05 118 views
0

我需要一種具有多色標籤欄圖標的方式,但由於某些原因,iOS仍以單色方式繪製圖標。設置多色標籤欄圖標而不是單色圖標

我嘗試了各種方法,例如在我的第一個視圖控制器的viewDidLoad中包含這行代碼:tabBarItem.image = #imageLiteral(resourceName:"routineIcon").withRenderingMode(.alwaysOriginal),但我沒有運氣。

有沒有什麼辦法可以在選項卡欄圖標中保留顏色信息而不使它變成單色?當它是五彩的時候看起來好上千倍。

感謝,

哈里什

回答

1

您需要創建一個新的UITabBarItem並將其分配給您的視圖控制器的tabBarItem財產。

// In viewDidLoad() 
self.tabBarItem = UITabBarItem(title: "Hello world!", image: #imageLiteral(resourceName: "routineIcon").withRenderingMode(.alwaysOriginal), tag: 0) 

此外,如果您使用的是資產目錄(你應該),請注意,在你的資產設置你有渲染爲設置,你可以設置爲都是獨創。 然後,您可以在使用圖像時省略.withRenderingMode(.alwaysOriginal)

// In viewDidLoad() 
self.tabBarItem = UITabBarItem(title: "Hello world!", image: #imageLiteral(resourceName: "routineIcon"), tag: 0) 

還有一個初始化的是需要,如果你有一個

// In viewDidLoad() 
self.tabBarItem = UITabBarItem(title: "Hello world!", image: #imageLiteral(resourceName: "routineIcon"), selectedImage: #imageLiteral(resourceName: "routineIconSelected")) 

注意所選圖像:作爲一般規則,修改系統UIBarItem對象(UITabBarItem的標籤欄和UIBarButtonItem爲導航欄或工具欄)通常不起作用,您需要創建一個新的。
系統欄項目是使用init(tabBarSystemItem:tag:)(對於UITabBarItem)或init(barButtonSystemItem:target:action:)(對於UIBarButtonItem)創建的項目。
使用故事板時,您可以決定使用系統欄項目還是自定義項目。

+0

工作正常!非常感謝!我希望我上面的代碼行最終能起作用,因爲修改某些類似的東西會變得很酷,而不是創建一個全新的代碼 – Harish