操作系统具有您可以使用的命名约定(并为您强制执行,这意味着您只需将文件引用为@"fileName"
)。文档可在此处获得。
- fileName.png -> iPhone(非视网膜/后备)
- 文件名@2x.png -> iPhone 4s/4(视网膜)
- 文件名~ipad.png -> iPad(非视网膜)
- 文件名@2x~ipad.png -> iPad(视网膜)
注意:~iphone 也存在,并且可以与~ipad 一起使用/代替使用。同时使用 ~ipad 和 ~iphone 可以防止 Apple 可能引入的第三种习语。咳嗽电视咳嗽
对于 iPhone 5,操作系统不强制执行命名方案。但是,使用与启动图像相同的方案可能是明智的。
- 文件名-568h@2x.png -> iPhone 5
为了在整个应用程序中轻松处理此问题,您可以创建一个类别,并在您知道您将拥有 iPhone 5 友好图像以及常规尺寸图像的地方使用它。可以制作一个简单的版本,如下所示。
UIImage+iPhone5Image.h
#import <UIKit/UIKit.h>
@interface UIImage (iPhone5Image)
+ (UIImage*)iPhone5ImageNamed:(NSString*)imageName;
@end
UIImage+iPhone5Image.m
#import "UIImage+iPhone5Image.h"
#define IsIPhone5() ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 568)
@implementation UIImage (iPhone5Image)
+ (UIImage*)iPhone5ImageNamed:(NSString*)imageName
{
if (IsIPhone5()) {
NSString* newImageName = [NSString stringWithFormat:@"%@-568h", imageName];
return [UIImage imageNamed:newImageName];
}
else {
return [UIImage imageNamed:imageName];
}
}
@end