设置多色标签栏图标而不是单色图标
Set multicolor tab bar icon instead of monochrome icon
我需要一种方法来制作多色标签栏图标,但出于某种原因,iOS 一直以单色方式绘制图标。
我尝试了各种方法,例如在我的第一个视图控制器的 viewDidLoad
中包含这行代码:tabBarItem.image = #imageLiteral(resourceName:"routineIcon").withRenderingMode(.alwaysOriginal)
,但我没有成功。
有什么方法可以保留标签栏图标中的颜色信息而不使其变成单色?五颜六色的时候好看一千倍。
谢谢,
哈里什
您需要创建一个新的 UITabBarItem
并将其分配给视图控制器的 tabBarItem
属性。
// In viewDidLoad()
self.tabBarItem = UITabBarItem(title: "Hello world!", image: #imageLiteral(resourceName: "routineIcon").withRenderingMode(.alwaysOriginal), tag: 0)
此外,如果您正在使用资产目录(您应该使用),请注意在资产设置中您有一个 Render As 设置,您可以将其设置为 始终原创。
然后,您可以在使用图像时省略 .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
)创建的项目。
使用故事板时,您可以决定使用系统栏项目还是自定义栏项目。
我需要一种方法来制作多色标签栏图标,但出于某种原因,iOS 一直以单色方式绘制图标。
我尝试了各种方法,例如在我的第一个视图控制器的 viewDidLoad
中包含这行代码:tabBarItem.image = #imageLiteral(resourceName:"routineIcon").withRenderingMode(.alwaysOriginal)
,但我没有成功。
有什么方法可以保留标签栏图标中的颜色信息而不使其变成单色?五颜六色的时候好看一千倍。
谢谢,
哈里什
您需要创建一个新的 UITabBarItem
并将其分配给视图控制器的 tabBarItem
属性。
// In viewDidLoad()
self.tabBarItem = UITabBarItem(title: "Hello world!", image: #imageLiteral(resourceName: "routineIcon").withRenderingMode(.alwaysOriginal), tag: 0)
此外,如果您正在使用资产目录(您应该使用),请注意在资产设置中您有一个 Render As 设置,您可以将其设置为 始终原创。
然后,您可以在使用图像时省略 .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
)创建的项目。
使用故事板时,您可以决定使用系统栏项目还是自定义栏项目。