解决iOS8以上系统下app底部UITabBarItem上自定义的背景色和图片,在首次启动或push之后再pop回去会变成系统默认颜色-蓝色问题
2014-11-19 17:18
776 查看
场景:
在ios8以下系统下正常显示,在ios8以上系统底部UITabBarItem会变成默认蓝色,遮挡图片上的字,
首先,在ios8以下没问题是因为在iOS8以下没问题是以下方法对ios8以下的系统支持比较好:
兼容ios5以上系统修改后的代码如下:
ios8下问题代码出现在:
当setFinishedSelectedImage时始终选择最原始用户自己指定的图片利用UIImage的imageWithRenderingMode来处理一下
问题图片如下:
正常图片如下:
在ios8以下系统下正常显示,在ios8以上系统底部UITabBarItem会变成默认蓝色,遮挡图片上的字,
首先,在ios8以下没问题是因为在iOS8以下没问题是以下方法对ios8以下的系统支持比较好:
- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage NS_DEPRECATED_IOS(5_0,7_0,"Use initWithTitle:image:selectedImage: or the image and selectedImage properties along with UIImageRenderingModeAlwaysOriginal");该方法的说明仅支持5, 7的系统;
兼容ios5以上系统修改后的代码如下:
UITabBarItem *tabBarItemMyGroup = [[UITabBarItem alloc] initWithTitle:@"名称1" image:[UIImage imageNamed:@"tab_xxx_unfocus"] selectedImage:[UIImage imageNamed:@"tab_xxx_focus"]]; [tabBarItemMyGroup setFinishedSelectedImage:<span style="color:#FF0000;">GET_IOS_VERSION >= 8.0?[[UIImage imageNamed: @"tab_xxx_focus"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]:<pre name="code" class="objc">[UIImage imageNamed: @"tab_xxx_focus"]</span> withFinishedUnselectedImage:[UIImage imageNamed:@"tab_mybang_unfocus"]]; [tabBarItemMyGroup setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:(152.0/255.0f) green:(154.0/255.0f) blue:(158.0/255.0f) alpha:(1.0f)], UITextAttributeTextColor, nil] forState:UIControlStateNormal]; [tabBarItemMyGroup setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: color, UITextAttributeTextColor, nil] forState:UIControlStateSelected]; myNavVC.tabBarItem = tabBarItemMyGroup;
ios8下问题代码出现在:
[tabBarItemMyGroup setFinishedSelectedImage:[UIImage imageNamed: @"tab_xxx_focus"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab_mybang_unfocus"]];
只要将每个<pre name="code" class="objc">setFinishedSelectedImage方的item项[UIImage imageNamed: @"tab_xxx_focus"]代换成这句判断一下系统版本就可以了
GET_IOS_VERSION >= 8.0?[[UIImage imageNamed: @"tab_xxx_focus"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]:<span style="color:#FF0000;"></span><pre name="code" class="objc">[UIImage imageNamed: @"tab_xxx_focus"]
当setFinishedSelectedImage时始终选择最原始用户自己指定的图片利用UIImage的imageWithRenderingMode来处理一下
问题图片如下:
正常图片如下:
相关文章推荐
- 在iOS8系统下,UITabbar上的item自定义背景色和图片问题
- 在iOS8系统下,UITabbar上的item自定义背景色和图片问题 (
- 在iOS8系统下,UITabbar上的item自定义背景色和图片问题
- 在iOS8系统下,UITabbar上的item自定义背景色和图片问题
- 在iOS8系统下,UITabbar上的item自定义背景色和图片问题
- iOS7修改UITabBar文本颜色以及解决自定义选中图片显示为默认蓝色的问题
- xcode6.1 自定义tabbar与poptoview产生重叠问题以及ios8上自定义tabbar图片显示颜色是系统颜色问题
- 解决Android启动APP的一瞬间系统栏会变成蓝色问题
- [iOS]iOS7+ UITabBar修改选中图片显示为默认蓝色的问题解决方法,去除UITabbar顶部一像素横线
- iOS应用程序开发——解决iOS7之前版本与之后版本下app启动图片跳动问题
- 关于标签栏(UITabBarItem)的系统颜色和图片以及标题颜色的问题
- 使用系统UITabbarItem自定义图片显示原本颜色和自定义文字颜色
- OS7 UITabBar自定义选中图片显示为默认蓝色的Bug
- VB|xp风格:终于解决了“图片优化软件”在部分xp系统上无法启动的问题。
- ios替换app启动图片时系统报错的解决办法
- 解决小米miui系统调用系统裁剪图片功能camera.action.CROP后崩溃或重新打开app的问题
- Win8如何恢复系统默认颜色以便解决现实错误问题
- 关于UITabbarItem在iOS 8 上显示不知道哪里来的蓝色并且模糊的问题解决办法
- UItabBarItem 添加图片不显示的问题解决办法
- 解决织梦(DedeCMS)系统自定义字段图片调用问题