我想在设备旋转时进行一些布局更改。所以我实现- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
了方法来完成这项工作。但是我意识到当这个方法被调用时 self.view.frame 和 self.view.bounds 是不同的。self.view.bounds.size 是正确的,而 self.view.frame.size 似乎仍然没有旋转。
例如,我创建了一个空的 singleView 项目并实现了如下方法:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
NSLog(@"willAnimateRotationToInterfaceOrientation");
NSLog(@"self.view.bounds.size width:%f height:%f ",self.view.bounds.size.width,self.view.bounds.size.height);
NSLog(@"self.view.frame.size width:%f height:%f",self.view.frame.size.width,self.view.frame.size.height);
}
当设备从纵向旋转到横向时。输出如下:
2013-06-11 11:57:46.959 viewDemo[95658:707] willAnimateRotationToInterfaceOrientation
2013-06-11 11:57:46.961 viewDemo[95658:707] self.view.bounds.size width:1024.000000 height:748.000000
2013-06-11 11:57:46.961 viewDemo[95658:707] self.view.frame.size width:748.000000 height:1024.000000
我想知道为什么这些尺寸不同?他们不应该总是一样的吗?什么时候选择使用哪一个?
任何帮助将不胜感激。