如何在viewDidLayoutSubviews中获得正确的视图高度?

dev*_*os1 2 cocoa-touch objective-c ios viewdidlayoutsubviews

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    NSLog(@"viewDidLayoutSubviews view.height: %f", self.view.frame.size.height);
}
Run Code Online (Sandbox Code Playgroud)

在上面的,view.height始终 1024,无论设备处于什么方位,即使旋转设备会导致viewDidLayoutSubviews被调用,它仍然会输出1024.

然而,这种观点很好.我错过了什么?

Sim*_*een 5

当iOS执行自动旋转时,它不会更改frame根视图控制器视图的属性.它的作用是应用变换并为变换变化设置动画.要查看视图的"实际"大小,请检查bounds属性而不是frame属性.

引述苹果的文档中的transform属性:

警告:如果此属性不是标识转换,则frame属性的值未定义,因此应忽略.