У меня есть очень простой UIScrollView
пример, который просто не делает то, что должен.Не уверен, что это ошибка в API или ошибка в моем коде.
По сути, у меня есть UIViewController
с UIScrollView
в качестве вида.Когда я добавляю его в UIWindow
и меняю ориентацию iPad, я выхожу из системы с размером UIScrollView
, о котором неправильно (?) Сообщается.
Вот моя реализация 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
сообщать о его реальном размере?