2013-09-27 1 views
11

Я пытаюсь реализовать с использованием Images.xcassets в проекте, над которым я работаю. Из того, что я понимаю, я могу просто поместить все изображения разных размеров для разных устройств, а затем вызовите [UIImage imageNamed: @ "name_of_image_set"], и он вернет правильное изображение для устройства, над которым я работаю.iPhone 4 "экран с xcassets не вытягивает правильное изображение

Кажется, что потяните правильное изображение за все, кроме iPhone 5/5s/5c, с помощью 4 "экран. Для этого размер экрана дает мне изображение для @ 2x iPhone с 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 должны работать?

Благодаря

Joel Bell

+0

возможно дубликат [Новое имя изображения для iPhone 5] (http://stackoverflow.com/questions/12497776/new-image-name-for -iphone-5) –

+0

Я видел этот вопрос, этот вопрос конкретно касается xcode 5 и нового управления активами функциональность. Какой смысл включать 4 "экрана экрана iphone в« набор изображений », если нет способа получить его снова? –

+0

Вы уверены? Я не вернулся и некоторое время смотрел на него, но Я реализовал его просто отлично на Xcode 5 –

ответ

4

Я столкнулся с этой проблемой, и проблема, похоже, ориентирована на версии iOS ниже 7.0 . Решение для меня состояло в том, чтобы создать отдельный набор изображений с одним изображением @ 2x на нем и создать программный код, iPhone размер экрана в коде, как сделано here

Связанный: Why isn't my Asset Catalog returning R4 images?

0

У меня была такая же проблема, но только в ios7, и я загружаю изображения программно, но это должна быть та же проблема.

В моей viewDidLoad я добавил:

if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { // if iOS 7 
    self.edgesForExtendedLayout = UIRectEdgeNone; //layout adjustements 
} 

Это в основном только признает iOS7 и применяет некоторый макет КОРРЕКТИРОВКУ. После добавления этого кода было выбрано правильное изображение. Наконец я загрузить мой образ, который вы не должны делать:

[productview setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]]; 

этот ответ также здесь, в StackOverflow, но не нашел его больше.

+0

Я серьезно сомневаюсь, что это было то, что решило проблему – ale0xB

+0

Этот комментарий серьезно помогает в решении проблемы ... – Charles

+0

Ну, я пробовал и не работает. На самом деле метод, который вы используете для обнаружения Версия iOS совсем не хороша. Если вы нацеливаете 6.1, [UIImage imagenamed:] не может выбрать правильное изображение R4 ... – ale0xB

Смежные вопросы