Как использовать xcassets/ универсальные фоновые изображения для разных iPhone /iPad?

Я хотел бы отображать различный фон для каждого устройства (например, iPhone 4S, iPhone 5, iPhone6, iPhone 6Plus и т. Д.). Я не говорю об изображениях запуска, но фоны приложения, которые будут отображаться при использовании приложения.

Я добавил следующий код в мой ViewController:

var bgImage     = UIImage(named: "main_bg");
var imageView   = UIImageView(frame: self.view.bounds);
imageView.image = bgImage
self.view.addSubview(imageView)
self.view.sendSubviewToBack(imageView)

И я готов добавить активы в каталог Images.xcassets.

Это то, что я вижу, когда создаю новый "Набор изображений"

Поэтому я пытаюсь сопоставить активы с каждым другим устройством.

Благодаря этому вопросу: поддержка универсальных изображений Теперь я знаю, что эти устройства будут иметь доступ к следующим изображениям:

iPhone 3 -> 1x (размер изображения: 320x480 пикселей)

iPhone 4 / 4S / 6 -> 2x (размер изображения: 640x960 пикселей)

iPhone 5 / 5c / 5s / iPod Touch -> Retina 4 2x (размер изображения: 640x1336)

iPhone 6 Plus -> 3x (размер изображения: 1242 x 2208)

У меня вопрос: как iPhone 4/4s и 6 могут получить доступ к одному и тому же изображению, если оно явно не подходит для обоих устройств?

Спасибо

1 ответ

Решение

Попробуйте проверить этот ответ: Как работать с масштабом изображения на всех доступных разрешениях iPhone?

Вы можете использовать этот код для настройки другого изображения:

NSNumber *screenWidth = @([UIScreen mainScreen].bounds.size.width);
NSString *imageName = [NSString stringWithFormat:@"name-%@w", screenWidth];
UIImage *image = [UIImage imageNamed:imageName];
Другие вопросы по тегам