设置多色选项卡栏图标,而不是单色图标



我需要一种使用多色标签栏图标的方法,但是由于某种原因,iOS一直以单色方式绘制图标。

我尝试了各种方法,例如在我的第一个视图控制器的viewDidLoad中包含此行:tabBarItem.image = #imageLiteral(resourceName:"routineIcon").withRenderingMode(.alwaysOriginal),但我没有运气。

有什么办法可以将颜色信息保留在标签栏图标中而无需使其单色?它的彩色颜色时看起来好一千倍。

谢谢,

harish

您需要创建一个新的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对象(TAB栏的UITabBarItem和导航栏或工具栏的UIBarButtonItem)通常不起作用,您需要创建一个新的。
系统栏项目是使用init(tabBarSystemItem:tag:)(用于UITabBarItem)或init(barButtonSystemItem:target:action:)UIBarButtonItem)创建的项目。
使用故事板时,您可以决定使用系统栏项目或自定义项目。

最新更新