2015-11-03 171 views
1

我是iOS编程新手。我想问这些关于不同屏幕尺寸的图像大小的问题不同iOS设备的图像大小

  1. 对于所有iOS设备,x,2x和3x图像大小是否足够?我的意思是,如果我有一个名为“background.png”的图像,background.png,background2x.png和background3x.png是否足以适用于所有iOS设备/屏幕尺寸?
  2. 如果不是,不同的iPad型号是否需要其他图像尺寸(x,2x和3x除外)? .......一个解释不同的屏幕尺寸/设备的图像大小的链接将不胜感激。由于

回答

0

如果您对@ 1倍,@ 2X形成的图像,并@ 3倍,名称他们是这样的:

然后,你可以调用像吹制法:

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; 
} 
相关问题