- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
NSLog(@"viewDidLayoutSubviews view.height: %f", self.view.frame.size.height);
}
在上文中,view.height
总是 1024,无论设备处于什么方向。即使旋转设备也会导致viewDidLayoutSubviews
被调用,但仍然会输出1024。
然而,这种观点很好。我错过了什么?
答案 0 :(得分:5)
当iOS执行自动旋转时,它不会更改根视图控制器视图的frame
属性。它的作用是应用变换并为变换变化设置动画。要查看视图的“实际”尺寸,请检查bounds
属性,而不是frame
属性。
引用transform
属性的Apple's documentation:
警告:如果此属性不是标识转换,则frame属性的值未定义,因此应忽略。
答案 1 :(得分:0)
我认为现在是时候在iOS8上更新了。在iOS8中: