Установка правильного размера кадра UIView на alloc / init в зависимости от ориентации устройства - PullRequest
1 голос
/ 06 марта 2011

Я настроил все мои виды в портретном режиме, затем соответственно установил маску авторазмера, чтобы она автоматически изменяла размеры видов при изменении ориентации .... однако, это, похоже, работает нормально для уже отображенных видов. Если я загружаю любые новые виды в ландшафтном режиме, я получаю инвертированные значения ширины и высоты в кадре загруженного вида.

Нужно ли рассчитывать размер кадра на основе ориентации для каждого из основных видов? например, вместо

UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0,0,500, 100)];

Я должен был бы сделать:

CGRect frame;
if([UIDevice orientation] == UIDeviceOrientationLandscape){
   frame = CGRectMake(0,0,100,500)
}else{
    frame = CGRectMake(0,0,500,100)
}
UIView* view = [[UIView alloc] initWithFrame:frame];

Это кажется мне немного скучным, учитывая, что автоповорот после загрузки представления работает отлично!

Как вы управляете рамками просмотра?

спасибо

1 Ответ

2 голосов
/ 06 марта 2011

Я управляю кадрами, используя [[UIScreen mainScreen] applicationFrame];.

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

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