ios – setTintColor和setSelectedImageTintColor无法正常工作

ios – setTintColor和setSelectedImageTintColor无法正常工作,第1张

概述我正在尝试更改自定义标签栏的标签栏项目的图标颜色, 但是setSelectedImageTintColor和setTintColor不能一起工作. 如果那个代码顺序是 [[UITabBar appearance] setSelectedImageTintColor:[UIColor greenColor]];[[UITabBar appearance] setTintColor:[UIColor 我正在尝试更改自定义标签栏的标签栏项目的图标颜色,

但是setSelectedImageTintcolor和setTintcolor不能一起工作.

如果那个代码顺序是

[[UITabbar appearance] setSelectedImageTintcolor:[UIcolor greencolor]];[[UITabbar appearance] setTintcolor:[UIcolor redcolor]];

那么输出就是

如果那个代码顺序是

[[UITabbar appearance] setTintcolor:[UIcolor redcolor]];[[UITabbar appearance] setSelectedImageTintcolor:[UIcolor greencolor]];

那么输出就是

我在dIDFinishLaunchingWithOptions方法中使用了以下代码,前两行工作正常,问题出在最后两行

//To set color for unselected tab bar item's Title color[[UITabbarItem appearance] setTitleTextAttributes:[NSDictionary  dictionaryWithObjectsAndKeys: [UIcolor redcolor],NSForegroundcolorAttributename,nil] forState:UIControlStatenormal];//To set color for selected tab bar item's Title color[[UITabbarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIcolor greencolor],nil] forState:UIControlStateSelected];//To set color for unselected icons[[UITabbar appearance] setTintcolor:[UIcolor redcolor]];//To set color for selected icons[[UITabbar appearance] setSelectedImageTintcolor:[UIcolor greencolor]];

注意 – 我有单独的自定义tabbar类,但我没有更改自定义tabbar类中的图标颜色

谢谢你的期待.

解决方法 首先,自iOS 8.0起,selectedImageTintcolor已弃用.

我设法实现您想要的唯一方法是为选定和未选择的状态分别设置图像,并分别使用UITabBbarItem的selectedImage和image属性.

重要说明:默认情况下,这两个图像属性都呈现为“模板”,这意味着它们是根据源图像中的Alpha值创建的,因此可以从tabbar的tintcolor中获取颜色.

为防止这种情况,请使用UIImageRenderingModeAlwaysOriginal提供图像.

因此,为了得到你想要的东西,你需要有两个版本的所有tabbar-images,一个是红色(用于未选择状态),一个是绿色(用于选定状态),然后执行以下 *** 作:

例子(swift):

tabbarItem1.image = UIImage(named:"redHouse")?.imageWithRenderingMode(.AlwaysOriginal)    tabbarItem1.selectedImage = UIImage(named:"greenHouse")?.imageWithRenderingMode(.AlwaysOriginal)

例子(objective-c):

[tabbarItem1 setimage:[[UIImage imagenamed:@"redHouse"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];    [tabbarItem2 setSelectedImage:[[UIImage imagenamed:@"greenHouse"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
总结

以上是内存溢出为你收集整理的ios – setTintColor和setSelectedImageTintColor无法正常工作全部内容,希望文章能够帮你解决ios – setTintColor和setSelectedImageTintColor无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1072800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存