2015-11-03 3 views
1

Я новичок в программировании на iOS. Я хочу задать эти вопросы о размерах изображений для разных размеров экрана.Размеры изображений для разных устройств iOS

  1. Нужны ли размеры x, 2x и 3x для всех устройств iOS? Я имею в виду, если у меня есть изображение с именем «background.png», достаточно ли background.png, background2x.png и background3x.png для всех устройств iOS/размеров экрана?
  2. Если нет, то для разных моделей iPad требуются некоторые другие размеры изображений (кроме x, 2x и 3x)? ....... Будет оценена ссылка для объяснения размеров изображений для разных размеров экрана/устройств. Благодарности

ответ

2

да х, 2х и 3х размеров изображения необходимо разработать приложение для всех IOS устройств, но размер изображения может быть различным для IPad & iPhone устройств, в зависимости от вашего интерфейса приложения для IPad & iPhone.

Для лучшего понимания фоновых изображений, пожалуйста, посмотрите Adaptivity and Layout

Один из лучших статьи, связанные с вашим запросом - Adaptive Layout Tutorial in iOS 9: Getting Started

0

Если вы сделали изображения для @ 1x, @ 2x, и @ 3x, имя им так:

Тогда вы можете просто вызвать метод удар, как:

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; 
} 
Смежные вопросы