iphone 4 Simulator сообщает 480x320 как размер экрана? - PullRequest
0 голосов
/ 05 июля 2010

Я отлаживаю приложение с помощью iPhone 4 Simulator. Я выбрал его в меню симулятора (устройство = iPhone 4). Когда я запускаю приложение, размер экрана составляет 480x320 !! ??

Есть ли что-то, что я должен изменить в этом моем приложении (изначально созданном для 3G / 3gs), чтобы оно работало на iPhone 4 (да, я воссоздал все иллюстрации в формате 960x640, и они находятся в комплекте, но он уменьшает его вдвое ... потому что он работает в режиме 3G / 3GS, а не в высоком разрешении).

работает

CGRect cgRect =[[UIScreen mainScreen] bounds];

приведет к (0,0,480,320).

Есть какие-нибудь подсказки?

спасибо за любую помощь.

Ответы [ 3 ]

3 голосов
/ 05 июля 2010

iPhone делает шаг в независимости от разрешения.Это означает, что все измеряется не в пикселях, а в точках.Точки не всегда соответствуют пикселям.

Размер экрана iPhone 3GS (и предыдущих) составляет 480x320, в обеих точках - пиксели.Они соответствуют на этих устройствах, но на более новых устройствах (таких как iPhone 4) они не соответствуют.

Размер экрана iPhone 4 составляет 960x640 в пикселях, но его логический размер экрана по-прежнему составляет 480x320 в точках.

Это позволяет вам сохранять значения кадра, точки и размера в их исходных значениях и по-прежнему поддерживать устройства с большим разрешением.

На iPhone 4 вам нужно иметь @ 2x где-то в имени файла изображения, и оно будетиспользоваться автоматически на устройствах с более высоким разрешением.

Когда загружаются изображения @ 2x, они загружаются как их исходное разрешение, но их свойство размера уменьшается вдвое, чтобы иметь возможность работать с измерениями логической точки.

Например, изображение с исходным размером 960x640 сообщит о своем размере 480x320, когда его попросят.

3 голосов
/ 05 июля 2010

Рекомендуем прочитать: http://developer.apple.com/iphone/library/documentation/iphone/conceptual/iphoneosprogrammingguide/SupportingResolutionIndependence/SupportingResolutionIndependence.html

Один балл не обязательно соответствуют одному пикселю на экране.

Пример проекта, скачайте здесь .

1 голос
/ 06 января 2012

вместо границ используйте currentMode

CGSize pixelBufferSize = [[[UIScreen mainScreen] currentMode] size];

, вы получите фактическое разрешение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...