- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试更改我的自定义标签栏的标签栏项目的图标颜色,
但是 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], NSForegroundColorAttributeName,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]];
注意 - 我有单独的自定义标签栏类,但我没有更改自定义标签栏类中的图标颜色
感谢期待。
最佳答案
首先,selectedImageTintColor
自 iOS 8.0 起已弃用。
我设法实现你想要的唯一方法是为选定和未选定状态使用单独的图像并使用 UITabBbarItem
的 selectedImage
和 image
属性。
重要:默认情况下,这两个图像属性都呈现为"template",这意味着它们是根据源图像中的 alpha 值创建的,因此将从 tabBar 的 tintColor 中获取它们的颜色.
为防止这种情况,请使用 UIImageRenderingModeAlwaysOriginal
提供图像。
所以,为了得到你想要的,你需要有两个版本的所有标签栏图像,一个红色(未选中状态)和一个绿色(选中状态),然后执行此操作:
示例(快速):
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 不能一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31042856/
我有一个 UISegmentedControl,其中包含 3 个用于选择 map 类型的选项。我将 tintcolor 设置为默认黑色,我想为选定的段设置绿色。 这里是分段控件的声明 NSArray
我正在设置 UIBarButtonItem 的 tintColor。只要颜色是明亮的颜色,它就可以工作,只要我尝试将它设置为 darkGrayColor 什么都没有发生,实际上它会将色调更改为白色!但
我把UIBarButtonItem tintColor设置为白色,在storyboard和simulator中都是白色的,但是在真机上运行就变成灰色了!为什么这么奇怪? 在真实手机中: 模拟器: 另外
我正在尝试更改我的自定义标签栏的标签栏项目的图标颜色, 但是 setSelectedImageTintColor 和 setTintColor 不能一起工作。 如果那个代码顺序是 [[UITabBar
我在应用商店中有一个应用程序正在使用 Flurry 分析。而且我不时收到一个我无法弄清楚的未处理异常错误。 NSInvalidArgumentException: -[UIBarButtonItem
在 iOS6 中,我使用这段代码制作我的 UIBarButtonItem: UIBarButtonItem* validate = [[UIBarButtonItem alloc]initWithTi
我已经尝试在我的 UIWebView 实例、UIView 外观和 UIWebView 外观上使用 setTintColor,但是它们都没有改变 UIWebview 中的插入符号颜色。 这适用于 nat
除了使用 UIBarButtonItems 的访问器 setTintColor 以添加 ios4 兼容性之外,还有其他替代方法吗? 是否可以修改 setter 以包含 systemVersion 的条
我有一个奇怪的问题。每当我的应用程序启动时,我都会在 AppDelegate 中执行以下操作: - (BOOL)application:(UIApplication *)application did
这个问题是针对运行 iOS 7 的 Xcode 5 的,非常奇怪。我正在尝试将所有 UInavigation 和 UIBarButtonItem 文本颜色设置为白色。 所以在我的应用启动委托(dele
我的应用程序在 ios 7 中运行没有问题,但是当我在 ios 6 中运行它时,它出现故障。报告是: 2013-10-17 22:58:45.509 Santarem Guide[606:c07] -
您好,我是 iPad 开发的新手,我正在开发一款与 iPad 5.1 模拟器和 iPad 6.0 模拟器兼容的应用 我在 5.1 SDK 中做了类似的事情 [self.navigationBar se
我是一名优秀的程序员,十分优秀!