Я столкнулся с проблемой, вызванной магией ориентации, которую я не понимаю. Во-первых, я использую NavigationController, который загружает ViewController. В этом ViewController есть ScrollView. Когда я запрашиваю положение ScrollView, я получаю неправильные данные. Например: координата x ScrollView равна 90 в построителе интерфейса. Если я программно получаю кадр ScrollView, он возвращает 280. Все в приложении настроено на альбомную ориентацию. В Info.plist, в сводке, в реализации ViewController'ов, в построителе интерфейса.
Я сделал несколько скриншотов. Может быть, они помогают найти ошибку.
И у каждого ViewController есть это:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
Если я удалю NavigationController из раскадровки и оставлю смоделированные метрики предполагаемыми, то первый ViewController переключится на портрет в раскадровке.
Когда я регистрирую размер представления из NavigationController, он находится в портретной ориентации.
NSLog(@"frame %@", NSStringFromCGRect(self.view.frame));
Выход 768x1024
viewWillApper:animated:
? - person The iOSDev   schedule 21.08.2012