我需要一种使用多色标签栏图标的方法,但是由于某种原因,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
)创建的项目。
使用故事板时,您可以决定使用系统栏项目或自定义项目。