Дисплей сетчатки Iphone в симуляторе - PullRequest
5 голосов
/ 18 июля 2010

Я немного запутался в том, как использовать симулятор для создания приложений, которые должны поддерживать новое более высокое разрешение iphone 4.

Я бы хотел, за исключением выбора симулятора iphone4 для запуска приложения.на этом [[UIScreen mainScreen] bounds] вернул бы мне 960x640, но вместо этого он все еще дает мне старое разрешение (480x320)?

Хотя симулятор iphone4 выглядит как гигантский телефон на моем экране, кажется, что он все еще состоит изтолько 480x320 пикселей.Например, когда я захочу отобразить что-то в строке 700, оно просто упадет с экрана?

Спасибо за любой вклад по этому вопросу.

Ответы [ 2 ]

8 голосов
/ 18 июля 2010

У UIScreen появился новый метод scale. Умножьте bounds.size на масштаб, чтобы получить пиксели. Вы можете считать немасштабированные значения точками или виртуальными пикселями.

Обратите внимание, что в UIScreen использовался метод масштабирования, по крайней мере, с 3.2, но он был задокументирован только с 4.0, поэтому откликнутся на тезисы. Я проверяю UIImage на масштабирование, даже когда хочу узнать об UIScreen.

UIScreen *mainScreen = [UIScreen mainScreen];
CGFloat scale = [mainScreen scale];
CGRect bounds = [mainScreen bounds];
CGRect pixels = bounds;

if ( scale > 0 ) {
    pixels.origin.x *= scale;
    pixels.origin.y *= scale;
    pixels.size.width *= scale;
    pixels.size.height *= scale;
}
4 голосов
/ 18 июля 2010

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

[[UIScreen mainScreen] bounds] 

границы возвращают точки (480x320), а не пиксели (960x640).
Руководство по программированию приложений iOS4 (Точки против пикселей):

В iOS 4 и более поздних версиях экран UIS, Классы UIView, UIImage и CALayer выставить масштабный коэффициент, который говорит вам связь между точками и пикселей для этого конкретного объекта. До iOS 4 этот масштабный коэффициент был предполагается, что 1.0, но в iOS 4 и позже это может быть 1.0 или 2.0, в зависимости от разрешения базовое устройство. В будущем, другие масштабные факторы также могут быть возможно.

...