关于UITabbarItem在iOS 8 上显示不知道哪里来的蓝色并且模糊的问题解决办法
2014-10-18 12:02
746 查看
这个问题折磨我四个小时将近 唉。。。
以后一定要注意苹果官方文档
@implementation UITabBarItem (Universal)
+ (instancetype)itemWithTitle:(NSString *)title image:(UIImage *)image selectedImage:(UIImage *)selectedImage
{
UITabBarItem *tabBarItem =
nil;
if ([[UIDevicecurrentDevice]systemVersion].floatValue
>=7) {
image = [imageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; //这两个地方一定要加上
selectedImage = [selectedImageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
tabBarItem = [[UITabBarItem
alloc] initWithTitle:title image:imageselectedImage:selectedImage];
} else {
tabBarItem = [[UITabBarItem
alloc] init];
[tabBarItem setFinishedSelectedImage:selectedImagewithFinishedUnselectedImage:image];
}
return tabBarItem;
}
@end
.....
[[self.tabBarControllertabBar]
setBackgroundImage:[UIImageimageNamed:@"dhbj.png"]];
[[self.tabBarControllertabBar]
setSelectionIndicatorImage:[UIImageimageNamed:@"dhbj_1.png"]];
使用举例 :
UIViewController *chargeController=[[[ChargingViewControlleralloc]init]autorelease];
chargeController.tabBarItem = [UITabBarItemitemWithTitle:nil
image:[UIImage imageNamed:@"daohang_2.png"]selectedImage:[UIImage
imageNamed:@"daohang_2_liang.png"]];
UINavigationController *chargeNav=[[[UINavigationControlleralloc]initWithRootViewController:chargeController]autorelease];
以前的这种写法废弃了:
for (UITabBarItem *tabItem
in self.tabBarController.tabBar.items)
{
if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:0])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_1_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_1"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:1])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_2_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_2"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:2])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_3_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_3"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:3])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_4_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_4"]];
}
}
以后一定要注意苹果官方文档
@implementation UITabBarItem (Universal)
+ (instancetype)itemWithTitle:(NSString *)title image:(UIImage *)image selectedImage:(UIImage *)selectedImage
{
UITabBarItem *tabBarItem =
nil;
if ([[UIDevicecurrentDevice]systemVersion].floatValue
>=7) {
image = [imageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; //这两个地方一定要加上
selectedImage = [selectedImageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
tabBarItem = [[UITabBarItem
alloc] initWithTitle:title image:imageselectedImage:selectedImage];
} else {
tabBarItem = [[UITabBarItem
alloc] init];
[tabBarItem setFinishedSelectedImage:selectedImagewithFinishedUnselectedImage:image];
}
return tabBarItem;
}
@end
.....
[[self.tabBarControllertabBar]
setBackgroundImage:[UIImageimageNamed:@"dhbj.png"]];
[[self.tabBarControllertabBar]
setSelectionIndicatorImage:[UIImageimageNamed:@"dhbj_1.png"]];
使用举例 :
UIViewController *chargeController=[[[ChargingViewControlleralloc]init]autorelease];
chargeController.tabBarItem = [UITabBarItemitemWithTitle:nil
image:[UIImage imageNamed:@"daohang_2.png"]selectedImage:[UIImage
imageNamed:@"daohang_2_liang.png"]];
UINavigationController *chargeNav=[[[UINavigationControlleralloc]initWithRootViewController:chargeController]autorelease];
以前的这种写法废弃了:
for (UITabBarItem *tabItem
in self.tabBarController.tabBar.items)
{
if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:0])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_1_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_1"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:1])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_2_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_2"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:2])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_3_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_3"]];
}
else if (tabItem==[self.tabBarController.tabBar.items objectAtIndex:3])
{
[tabItem setFinishedSelectedImage:[UIImage imageNamed:@"daohang_4_liang.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"daohang_4"]];
}
}
相关文章推荐
- 关于UITabbarItem在iOS 8 上显示不知道哪里来的蓝色并且模糊的问题解决办法
- 关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法
- ListView或GridView嵌入ScrollView中时,只显示一个Item并且默认将此Item置顶的问题解决办法
- 关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法
- [iOS]iOS7+ UITabBar修改选中图片显示为默认蓝色的问题解决方法,去除UITabbar顶部一像素横线
- UItabBarItem 添加图片不显示的问题解决办法
- 关于win7升级win10后高分屏界面显示模糊问题,字迹显示模糊问题解决办法
- 关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法
- Android应用程序当中GridView显示不同大小图片时Item挤出问题解决办法
- 关于FusionCharts图表宽度width的设置问题导致图表显示异常的解决办法
- 关于svn图标不显示问题的解决办法
- cocos2dx js 关于canvas绘图模糊问题及解决办法
- 关于Window 7 系统磁盘无法显示的问题的解决办法
- ios升级为5后,程序编译时遇到的关于libz 1.2.3.dylib类包的各种问题解决办法
- 关于iOS7之后自定义leftnavigationitem后手势无法响应问题的解决办法
- 关于QTE4的汉字显示问题的终极解决办法!!!(亲测可用!)
- 关于cocos2d-html5纹理模糊的问题解决办法
- 关于FusionCharts图表宽度width的设置问题导致图表显示异常的解决办法
- iTextSharp应用中关于“Cannot access a closed Stream”问题的解决办法(附带提供如何在页面中显示PDF的流)
- 解决iOS8以上系统下app底部UITabBarItem上自定义的背景色和图片,在首次启动或push之后再pop回去会变成系统默认颜色-蓝色问题