#iphone #uiwindow #screen-resolution
#iPhone #uiwindow #разрешение экрана
Вопрос:
Я создаю приложение для iPhone, которое будет работать на iPhone 3 и iPhone 4.
До этого момента я пытался настроить изображения в соответствии с разрешением, но оказывается, что даже при запуске на iPhone 4 размер моего окна составляет 320×480.
В XIB я указал «полноэкранный режим при запуске», а для ViewController я даже указал «Хочет полноэкранный режим», но я никогда не могу заставить его распознавать фактическое разрешение.
Я что-то упускаю?
Ответ №1:
Работает ли оно в полноэкранном режиме на вашем iPhone 4? (Я не имею в виду, о каком разрешении сообщается, я имею в виду, есть ли черные полосы вокруг приложения — бьюсь об заклад, что их нет).
iOS «волшебна» тем, что вы просто работаете с параметрами размера iPhone 3, то есть xibs и т.д., И она корректно масштабирует их для вас на iPhone 4. Вы всегда будете видеть меньшее разрешение при запросе дисплея.
Чтобы заставить изображения загружаться в правильном разрешении, просто создайте две версии, т. е.
myImage.png myImage@2x.png
Сделайте второе окно ровно в два раза больше первого, и iPhone сделает все остальное.
PS В UIImageView добавлено свойство под названием scale — именно так iPhone определяет размер изображения для рендеринга — посмотрите документы здесь.
Комментарии:
1. Я вижу. Таким образом, мои исходные изображения уже имеют размер 2x, хотя они и не названы таким образом. На самом деле я применяю коэффициент уменьшения при вставке изображений. Проблема в том, что я хотел бы сохранить текущий вид в сохраненных фотографиях, но когда я это делаю, сохраняется изображение размером 320×480 вместо изображения полного качества.
2. Это странно — я бы ожидал, что оно сохранится с правильным разрешением. У меня нет опыта сохранения фотографий, но я бы опубликовал еще один вопрос (включая код, который вы используете) в stack overflow — возможно, есть кто-то еще, кто может помочь!
3. @Andre — Используете ли вы UIGraphicsBeginImageContext() при создании снимка? На дисплее Retina вы захотите использовать UIGraphicsBeginImageContextWithOptions() и установить масштабный коэффициент равным 0.0, чтобы подобрать масштабный коэффициент дисплея. Это должно создать растровое изображение, соответствующее разрешению экрана окна вашего приложения.
4. @Брэд, да! Позвольте мне попробовать это сейчас 🙂