iOS — активы дисплея Retina не работают?

Я запускаю свое приложение на iPhone 4, и панель навигации и все мои ярлыки очень размыты (без сетчатки). Большинство размытых элементов пользовательского интерфейса — это пользовательские интерфейсы iOS по умолчанию.

Когда я запускаю другие приложения на своем телефоне, они выглядят намного лучше, и вы можете легко увидеть разницу.

Есть ли какие-либо настройки проекта, которые мне нужно изменить, чтобы активы более высокого качества использовались в моем приложении?

ИЗМЕНИТЬ:

Я не забочусь о своих активах. Сейчас меня волнуют ЭЛЕМЕНТЫ ИНТЕРФЕЙСА ПО УМОЛЧАНИЮ В IOS

ИЗМЕНИТЬ:

Я добавил тень к своему основному UINavigationController. Чтобы повысить производительность при анимации теней, я установил для параметра ShouldRasterize значение YES, удаление этой строки xode устраняет проблему.

[self.navigationController.view.layer setShouldRasterize:YES];

person aryaxt    schedule 02.05.2012    source источник
comment
Добавляйте суффикс @2x к своим изображениям (например, Icon.png 57x57 и [email protected] 114x114)   -  person Mick MacCallum    schedule 03.05.2012
comment
Вы можете гарантировать, что это программное обеспечение, а не ваши глаза?   -  person CodaFi    schedule 03.05.2012
comment
Да, разница очень очевидна, у меня также были другие подтверждения.   -  person aryaxt    schedule 03.05.2012
comment
Все ли обновлено до последней версии? (Mac, Xcode, iPhone и т. д.)   -  person Zelko    schedule 03.05.2012
comment
Точно сказать не могу; это всегда работало без проблем для меня. Может быть, вам нужно сделать ссылку на более новую версию UIKit, чтобы она работала? Какой версией Xcode и с помощью какого SDK вы компилируете приложение?   -  person mpontillo    schedule 03.05.2012
comment
Это происходит, если вы создаете новый проект?   -  person sosborn    schedule 03.05.2012
comment
Проверьте мой ответ. Я почти уверен, что это ваша проблема, учитывая вашу ситуацию.   -  person Ryan Poolos    schedule 03.05.2012


Ответы (2)


Если вы установили «Должен растеризовать», вы должны не забыть установить масштаб растеризации.

[self.view.layer setShouldRasterize:YES];
[self.view.layer setRasterizationScale:[UIScreen mainScreen].scale];

Вы должны помнить, что растеризация преобразует слой в простое растровое изображение, которое хранится в памяти, чтобы сэкономить циклы процессора во время сложных анимаций. Однако, если вы используете устройство Retina, вам нужно убедиться, что вы сохраняете его в двойном масштабе, поскольку на экране в 4 раза больше пикселей.

person Ryan Poolos    schedule 02.05.2012
comment
Спасибо, это было спасением жизни! ;) - person ArkReversed; 02.04.2013
comment
Ха-ха, рад, что смог помочь. Удачного кодирования :) - person Ryan Poolos; 02.04.2013

Вы сделали увеличенное вдвое изображение с суффиксом @2x?

например navBarBackground.png & [email protected] (последний в два раза больше первого)

http://developer.apple.com/library/ios/ДОКУМЕНТАЦИЯ/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW16

person Paul Peelen    schedule 02.05.2012
comment
Я думаю, что его вопрос больше касается членов UIKit, а не внешних изображений. - person CodaFi; 03.05.2012
comment
Тем не менее, строка состояния и все другие родные дизайны автоматически отображаются на сетчатке, если устройство является устройством с сетчаткой, независимо от того, поддерживает ли приложение сетчатку или нет. - person Paul Peelen; 03.05.2012
comment
Я не использую пользовательские изображения, все приложение использует элементы пользовательского интерфейса по умолчанию. - person aryaxt; 03.05.2012
comment
Хорошо, мое следующее предложение — проверить, собираете ли вы iOS5, 4, 3 и т. д. Однако это не должно иметь никакого значения. Также... загрузите скриншот вашего результата. - person Paul Peelen; 03.05.2012
comment
Мой базовый SDK — 5.1, и мой iPhone тоже работает под управлением 5.1. - person aryaxt; 03.05.2012