我是iOS编程新手。我想问这些关于不同屏幕尺寸的图像大小的问题不同iOS设备的图像大小
- 对于所有iOS设备,x,2x和3x图像大小是否足够?我的意思是,如果我有一个名为“background.png”的图像,background.png,background2x.png和background3x.png是否足以适用于所有iOS设备/屏幕尺寸?
- 如果不是,不同的iPad型号是否需要其他图像尺寸(x,2x和3x除外)? .......一个解释不同的屏幕尺寸/设备的图像大小的链接将不胜感激。由于
我是iOS编程新手。我想问这些关于不同屏幕尺寸的图像大小的问题不同iOS设备的图像大小
是X,2倍和3个的图像尺寸是必要的开发应用为所有iOS设备,但图像的尺寸可以为iPad & iPhone设备不同,这取决于iPad的& iPhone应用程序的用户界面。
为背景图片更好的理解,请看看Adaptivity and Layout
一个与您查询的最佳文章 - Adaptive Layout Tutorial in iOS 9: Getting Started
如果您对@ 1倍,@ 2X形成的图像,并@ 3倍,名称他们是这样的:
myImage.png
[email protected]
[email protected]
[email protected]
[email protected]
然后,你可以调用像吹制法:
UIImage *myImage = [self deviceSizedImageWithName:@"myImage.png"];
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenSize [UIScreen mainScreen].bounds.size
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_4 (IS_IPHONE && kScreenHeight == 480.0f)
#define IS_IPHONE_5 (IS_IPHONE && kScreenHeight == 568.0f)
#define IS_IPHONE_6 (IS_IPHONE && kScreenHeight == 667.0f)
#define IS_IPHONE_6P (IS_IPHONE && kScreenHeight == 736.0f)
- (UIImage *)deviceSizedImageWithName:(NSString *)imageNamed
{
NSString *imgExtension = [imageNamed pathExtension];
NSString *imgName = [imageNamed stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@".%@", imgExtension] withString:@""];
BOOL removedExt = [imgExtension length];
UIImage *image = [UIImage imageNamed:imageNamed];
if (IS_IPHONE_5) {
if (removedExt) image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-568h.%@", imgName, imgExtension]];
else image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-568h", imageNamed]];
if (!image) return [UIImage imageNamed:imageNamed];
} else if (IS_IPHONE_6) {
if (removedExt) image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-667h.%@", imgName, imgExtension]];
else image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-667h", imageNamed]];
if (!image) return [UIImage imageNamed:imageNamed];
} else if (IS_IPHONE_6P) {
if (removedExt) image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-736.%@", imgName, imgExtension]];
else image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-736", imageNamed]];
if (!image) return [UIImage imageNamed:imageNamed];
}
return image;
}