child.tabBarItem.image = [UIImage imageWithName:imageName];
UIImage *selectedImage = [UIImage imageWithName:selectedImageName];
UIimage = [UIImage imageNamed:imageName];这个方法中重新定义为
[UIImage imageWithName:imageName]
这个类重新定义为
创建一个UIImage类 在.h中写一个类方法
+ (UIImage *)imageWithName:(NSString *)name;
.m中得文件中类方法得具体实现
+ (UIImage *)imageWithName:(NSString *)name
{
// 0.需要返回的图片
UIImage *image = nil;
// 1.判断系统版本
if (iOS7) {
NSString *ios7Name = [name stringByAppendingString:@"_os7"];
// 加载iOS7的图片
image = [self imageNamed:ios7Name];
}
// 2.图片不存在
if (image == nil) {
image = [self imageNamed:name];
}
return image;
}
在这其中需要拼接字符串 NSString *ios7Name = [name stringByAppendingString:@"_os7"];
iOS7得宏定义
// 是否为iOS7
#define iOS7 ([UIDevice currentDevice].systemVersion.doubleValue >= 7.0)
// 是否为4inch
#define FourInch ([UIScreen mainScreen].bounds.size.height == 568.0)
在一个程序中尽量多得使用宏定义 方便使用将改好得类文件得头文件写到Prefix.pch中
iOS7中自动渲染图片为蓝色 如果不需要渲染 则需要调用这个方法
selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];