UIScrollView, не получая новый размер на изменении ориентации

У меня есть очень простое UIScrollView пример, который просто не делает то, что он, как предполагается. Не уверенный, если это - ошибка с API или ошибка в моем коде.

В основном у меня есть a UIViewController с a UIScrollView поскольку это - представление. Когда я добавляю его к UIWindow и измените ориентацию iPad, я выхожу из системы UIScrollViews размер, о котором неправильно(?) сообщают.

Вот мой UIViewController реализация:

@implementation CustomViewController
- (void)loadView {
  scrollView = [[[UIScrollView alloc] init] autorelease];
  scrollView.delegate = self;
  scrollView.backgroundColor = [UIColor redColor];
  self.view = scrollView;
}

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
  CGSize rect = scrollView.frame.size;
  NSLog(@"will rotate w%f h%f", rect.width, rect.height);
}

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
  CGSize rect = scrollView.frame.size;
  NSLog(@"will animate rotation w%f h%f", rect.width, rect.height);
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
  CGSize rect = scrollView.frame.size;
  NSLog(@"did rotate w%f h%f", rect.width, rect.height);
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  return YES;
}

@end

Когда я выполняю вышеупомянутый код, я вижу следующие записи в своей консоли:

2010-07-11 11:03:05.214 Untitled2[6682:207] will rotate w768.000000 h1004.000000
2010-07-11 11:03:05.214 Untitled2[6682:207] will animate rotation w748.000000 h1024.000000
2010-07-11 11:03:05.619 Untitled2[6682:207] did rotate w748.000000 h1024.000000
2010-07-11 11:03:07.951 Untitled2[6682:207] will rotate w748.000000 h1024.000000
2010-07-11 11:03:07.958 Untitled2[6682:207] will animate rotation w768.000000 h1004.000000
2010-07-11 11:03:08.367 Untitled2[6682:207] did rotate w768.000000 h1004.000000

Как Вы видите, изменения ориентации действительно изменяет размер UIScrollView, но только позволить новую строку состояния. Я ожидал бы, что ширина и высота решительно изменяются, как UIScrollView то, как шире, чем он высоко и наоборот.

Есть ли способ добраться UIScrollView для создания отчетов это - реальный размер?

7
задан Sufian 26 June 2014 в 13:06
поделиться

1 ответ

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

scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
2
ответ дан 7 December 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: