Размер кадра представления не изменяется при повороте, когда представление создается с помощью loadView

#iphone #objective-c #rotation #loadview

#iPhone #objective-c #поворот #loadview

Вопрос:

У меня есть UIViewController без xib, и я использую loadView для создания своего пользовательского интерфейса, который создает и добавляет два вида прокрутки. Дело в том, что размер основного кадра представления не меняется при повороте. Я имею в виду, я устанавливаю начальный размер кадра для основного вида в loadView (портретный режим: ширина кадра = 320, высота = 480). После поворота в альбомную ориентацию размер основного кадра представления не меняется и остается таким же, как в портретном режиме. Вот мой loadView:

 -(void)loadView{

  CGRect screenBounds = [[UIScreen mainScreen] bounds];    
  self.view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, screenBounds.size.width, screenBounds.size.height)] autorelease];
  self.view.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
  self.scrollView1 = [[[UIScrollView alloc] init] autorelease];
  self.scrollView1.frame = CGRectMake...
  [self.view addSubview:self.scrollView1];
  self.scrollView2 = [[[UIScrollView alloc] init] autorelease];
  self.scrollView2.frame = CGRectMake...
  [self.view addSubview:self.scrollView2];
 

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

Ответ №1:

Я заметил, что self.view.frame size не изменяется, но self.view.bounds изменяется при вращении, а границы представляют правильные значения относительно текущей ориентации интерфейса.