IPhone 4 "с xcassets, не потянув правильное изображение
Я пытаюсь реализовать использование Images.xcassets в проекте, над которым я работаю. Насколько я понимаю, я могу просто поместить все изображения разных размеров для разных устройств, а затем вызвать [UIImage imageNamed: @ "name_of_image_set" ], и он вернет правильное изображение для устройства, над которым я работаю.
Кажется, что вы потянете правильное изображение для всего, кроме iPhone 5/5s/5c, с 4-дюймовым экраном. Для этого размера экрана он дает мне изображение для iPhone @2x с экраном 3,5 дюйма.
![Image of config in Images.xcassets]()
Вот json, который включен в папку с изображениями.
{
"images" : [
{
"idiom" : "iphone",
"scale" : "1x",
"filename" : "bg.png"
},
{
"idiom" : "iphone",
"scale" : "2x",
"filename" : "[email protected]"
},
{
"idiom" : "iphone",
"filename" : "[email protected]",
"subtype" : "retina4",
"scale" : "2x"
},
{
"idiom" : "ipad",
"scale" : "1x",
"filename" : "bg~ipad.png"
},
{
"idiom" : "ipad",
"scale" : "2x",
"filename" : "[email protected]~ipad.png"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Кажется, все в порядке, я просто не понимаю, как должны работать xcassets?
Спасибо
Джоэл Белл
Ответы
Ответ 1
Я столкнулся с этой проблемой, и проблема, похоже, нацелена на версии iOS ниже 7.0
Решение для меня заключалось в создании отдельного набора изображений с одним изображением @2x на нем и программным обеспечением для создания правильного программного кода путем определения размера экрана iPhone в коде, как сделанный здесь
по теме:
Почему мой каталог активов не возвращает изображения R4?
Ответ 2
У меня была такая же проблема, но только в ios7, и я загружаю изображения программно, но это должна быть та же проблема.
В моем представленииDidLoad я добавил:
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { // if iOS 7
self.edgesForExtendedLayout = UIRectEdgeNone; //layout adjustements
}
В основном он просто распознает iOS7 и применяет некоторые настройки макета. После добавления этого кода было выбрано правильное изображение.
Наконец, я загружаю свое изображение, которое вам не нужно делать:
[productview setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];
Нашел этот ответ и здесь, в stackoverflow, но больше не нашел его.