Проблема адаптации масштабного коэффициента для режима совместимости iPad x2 - PullRequest
1 голос
/ 06 октября 2010

Интересно, может ли кто-нибудь помочь мне со следующим?Я написал Quartz 2d ap и использовал следующий код, чтобы получить правильный масштабный коэффициент для каждого устройства:

if ([UIScreen instancesRespondToSelector:@selector(scale)])
{
        return [[UIScreen mainScreen] scale];
}
else
{
        return 1.0;
}

Затем я умножил все значения на этот множитель масштаба в своем коде.У меня проблема в том, что приложение не отображается должным образом в режиме x2 на ipad - все в два раза больше.Кто-нибудь может мне помочь?

Спасибо,

Мартин

Ответы [ 2 ]

2 голосов
/ 06 октября 2010

Коэффициент масштабирования связан с дисплеями Retina на новых iPhone и iPod touch, а не с настройкой 2X на iPad.Фактически, свойство UIScreen scale, на которое вы ссылаетесь, не существует в текущей версии ОС iPad версии 3.2, только в версии 4.0+.На текущих iPad, работающих под управлением бета-версии OS 4.2, он всегда должен возвращать 1.0.

Проблема , с которой вы сталкиваетесь с рисованием кварца в режиме 2X, должна исходить из другого места.Делаете ли вы какие-либо специфичные для устройства проверки на наличие каких-либо элементов в вашем коде?

1 голос
/ 06 октября 2010

Я не уверен, что это ваша проблема, но вы, кажется, хотите проверить UIScreen для шкалы селектора.Которого никогда не будет.Этот селектор работает только на [UIScreen mainScreen].

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
{
     return [[UIScreen mainScreen] scale];
}
else    
{
     return 1.0;
}

Хотя эта ошибка позволит вам думать, что он всегда будет возвращать шкалу 1,0.

...