Ограничения UIScreen по сравнению с applicationFrame
Почему я вижу в некотором примерном коде Apple (например, PhotoScroller), что я должен сделать следующее в loadView
:
CGRect frame = [[UIScreen mainScreen] bounds];
вместо
CGRect frame = [[UIScreen mainScreen] applicationFrame];
Имеет ли значение получить основную рамку экрана?
Ответы
Ответ 1
ApplicationFrame - это размер экрана за вычетом размера строки состояния (если видимый), границы - это размер экрана независимо от строки состояния.
Итак, applicationFrame вернет CGRectMake(0,0,320,460)
, предположив, что ваше приложение имеет строку состояния, которая должна быть видимой, а границы возвращают CGRectMake(0,0,320,480)
при тех же условиях. Эти цифры предполагают размеры экрана iPhone/iPod Touch.
Справочник по классу UIScreen
Ответ 2
Обновление iOS 9
При использовании функции Split View на iPad, applicationFrame
возвращает размер окна вашего приложения. bounds
всегда возвращает размер устройства.