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

标签 ios swift uitabbarcontroller uicolor uitabbaritem

我需要一种方法来获得多色选项卡栏图标,但由于某种原因,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/

相关文章:

ios - 如何将本地通知设置为从存储在数组中的日期开始触发?

ios - 如何测试需要设备特定信息的函数/计算属性?

ios - 如何更改 map 框注释 View ?

ios - 从应用程序委托(delegate)快捷方式时, View Controller 中缺少选项卡栏

ios - 提交到应用商店后可以更改应用名称吗?

ios - 使用 UILongPressGestureRecognizer 选择时在 UITableviewCell 周围绘制边框

iphone - 如何在 UITabBarController 中获得完全透明的 TabBar

ios - 使用选定的 TableView 项和选项卡栏 Controller 显示 View Controller

ios - Facebook ios sdk共同好友

ios - swift : how to detect the error type using the debugger?