不同iOS版本中图像的名称

时间:2013-11-11 05:27:46

标签: ios objective-c icons

有没有办法命名我在我的应用程序中使用的图像/图标,以便在ios6 / 7中使用不同的图标?

例如我尝试使用:

bar_item-ios7@2x.png
bar_item@2x.png

我希望当我在ios7中启动应用程序时,Xcode会自动使用第一个,而在ios6中启动第二个应用程序。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

Apple不提供支持,但一种解决方法可能是使用UIImage的类别,使用基于操作系统版本加载正确版本的方法:

+(UIImage)imageNamed2:(NSString *)imageName{
    NSString *finalImageName;
    if([[UIDevice currentDevice].systemVersion floatValue] >= 7){
        finalImageName = [NSString stringWithFormat:@"ios7-%@",imageName];
    }else{
        finalImageName = imageName;
    }
    return [self imageNamed:finalImageName];
}

这样,图像将被命名为:

example.png
example@2x.png
ios7-example@2x.png

你可以用这种方式实例化图像:

[UIImage imageNamed2:@"example.png"];

希望这有帮助