我需要一种方法来获得多色选项卡栏图标,但由于某种原因,iOS 一直以单色方式绘制图标。
我尝试了各种方法,例如在 viewDidLoad
中包含这行代码: tabBarItem.image = #imageLiteral(resourceName:"routineIcon").withRenderingMode(.alwaysOriginal)
> 我的第一个 View Controller ,但我没有运气。
有什么方法可以在选项卡栏图标中保留颜色信息而不将其设为单色吗?当它是彩色的时,它看起来好一千倍。
谢谢
哈里什
最佳答案
您需要创建一个新的 UITabBarItem
并将其分配给 View Controller 的 tabBarItem
属性。
// In viewDidLoad()
self.tabBarItem = UITabBarItem(title: "Hello world!", image: #imageLiteral(resourceName: "routineIcon").withRenderingMode(.alwaysOriginal), tag: 0)
此外,如果您使用 Assets 目录(您应该这样做),请注意在 Assets 设置中您有一个渲染为设置,您可以将其设置为始终原始嗯>。
然后,您可以在使用图像时省略 .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
)。
使用 Storyboard时,您可以决定使用系统栏项目或自定义栏项目。
关于ios - 设置多色选项卡栏图标而不是单色图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42612867/