设置多色标签栏图标而不是单色图标
Posted
技术标签:
【中文标题】设置多色标签栏图标而不是单色图标【英文标题】:Set multicolor tab bar icon instead of monochrome icon 【发布时间】:2017-03-05 19:23:11 【问题描述】:我需要一种方法来制作多色标签栏图标,但出于某种原因,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)
另外,如果您正在使用资产目录(您应该这样做),请注意在您的资产设置中,您有一个 Render As 设置,您可以将其设置为 Always Original时间>。
然后,您可以在使用图像时省略.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
)创建的项目。
使用情节提要时,您可以决定使用系统栏项目还是自定义项目。
【讨论】:
成功了!非常感谢!我希望我上面的代码行最终可以工作,因为修改某些类似的东西而不是创建一个全新的东西会很酷以上是关于设置多色标签栏图标而不是单色图标的主要内容,如果未能解决你的问题,请参考以下文章