Как использовать 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];