Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 设置多色选项卡栏图标而不是单色图标_Ios_Swift_Uitabbarcontroller_Uicolor_Uitabbaritem - Fatal编程技术网

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

Ios 设置多色选项卡栏图标而不是单色图标,ios,swift,uitabbarcontroller,uicolor,uitabbaritem,Ios,Swift,Uitabbarcontroller,Uicolor,Uitabbaritem,我需要一种拥有多色选项卡栏图标的方法,但出于某种原因,iOS一直以单色方式绘制图标 我尝试了各种方法,比如包括这行代码:tabBarItem.image=#imageLiteral(resourceName:“routineIcon”)。在我的第一个视图控制器的viewDidLoad中使用RenderingMode(.alwaysOriginal),但我没有运气 有没有办法在标签栏图标中保留颜色信息而不使其单色?当它是彩色的时候,它看起来好多了 谢谢 Harish您需要创建一个新的uitabar

我需要一种拥有多色选项卡栏图标的方法,但出于某种原因,iOS一直以单色方式绘制图标

我尝试了各种方法,比如包括这行代码:
tabBarItem.image=#imageLiteral(resourceName:“routineIcon”)。在我的第一个视图控制器的
viewDidLoad
中使用RenderingMode(.alwaysOriginal)
,但我没有运气

有没有办法在标签栏图标中保留颜色信息而不使其单色?当它是彩色的时候,它看起来好多了

谢谢


Harish

您需要创建一个新的
uitabaritem
,并将其分配给视图控制器的
tabBarItem
属性

// In viewDidLoad()
self.tabBarItem = UITabBarItem(title: "Hello world!", image: #imageLiteral(resourceName: "routineIcon").withRenderingMode(.alwaysOriginal), tag: 0)
此外,如果您使用的是资源目录(您应该这样做),请注意,在资源设置中有一个“渲染为”设置,可以将其设置为“始终原始”。 然后,在使用图像时,您可以使用RenderingMode(.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
对象(
uitabaritem
用于选项卡栏,而
UIBarButtonItem
用于导航栏或工具栏)通常不起作用,您需要创建一个新对象。
系统栏项目是使用
init(tabBarSystemItem:tag:)
(对于
uitabaritem
)或
init(barButtonSystemItem:target:action:)
(对于
uiBarButtonim
)创建的项目。

使用故事板时,您可以决定使用系统栏项目或自定义项目。

这很有效!非常感谢!我希望我上面的代码行最终能够正常工作,因为这样修改某些东西而不是创建一个全新的东西会很酷