Я хочу, чтобы представление оставалось статичным, но содержимое переориентировалось в представлении

#iphone #ipad #uiview #resize

#iPhone #iPad #uiview #изменение размера

Вопрос:

Я создаю представление с несколькими подвидами для iPad. Я хочу, чтобы все позиционирование и размеры вложенных представлений оставались неизменными при повороте iPad, но содержимое внутри вложенных представлений переориентировалось. Кто-нибудь знает, как это сделать?

Ответ №1:

Похоже, вам все еще нужно компоновать представления в зависимости от ориентации. Однако ваши портретные и альбомные рамки будут иметь разные пропорции на экране.

Пример того, как вы могли бы расположить представление:

 int h = 300;
int w = 100;
int space = 50;

CGRect frame;
if( interfaceOrientation == UIInterfaceOrientationPortrait ) {

   frame = CGRectMake( space, space, w, h );
}
else if( interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown ) {
    frame = CGRectMake( self.view.bounds.size.width - w - space, self.view.bounds.size.height- h - space, w, h );
}
else if( interfaceOrientation == UIInterfaceOrientationLandscapeRight ) {
    frame = CGRectMake( space, self.view.bounds.size.height- w - space, h , w );
}
else if( interfaceOrientation == UIInterfaceOrientationLandscapeLeft ) {
    frame = CGRectMake( self.view.bounds.size.width - h - space, space, h, w );
}

self.label.frame = frame;
  

Комментарии:

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