Попробуйте что-то вроде этого:
NSLog("frame=%@ transform=%@", NSStringFromCGRect(self.frame), NSStringFromCGAffineTransform(self.transform));
Готов поспорить, что преобразование - это тождество (1,0,0,1,0,0), когда размер кадра составляет 480x320, а 90° Поворот (0,1, -1,0,0,0 или 0, -1,1,0,0,0) при размере кадра 320x480.
Что происходит?
* 1007Хорошо, viewDidLoad (и я
думаю viewWillAppear) вызывается до того, как представление добавляется в иерархию представлений.Когда он добавляется в иерархию, UIKit также устанавливает преобразование вида, как происходит вращение.
Но почему это меняет кадр?
Что ж, «кадр» относится кродительское представление, которое является UIWindow.Окно не вращается;вид контроллера представления делает.С точки зрения окна, все эффективно в портретном режиме.
Вы, вероятно, хотите self.view.bounds.