我遇到了我认为奇怪的行为。如果有人能澄清这一点,那就太好了。
在 viewDidLoad 中,最初我打印 UIView 边界的高度和宽度,像这样
-(void) viewDidLoad
{
NSLog(@"WxH = %fx%f", self.view.bounds.size.width,self.view.bounds.size.height);
}
打印: WxH = 320.000000x548.000000
现在,假设我将视图控制器旋转到横向 - 然后返回纵向,并打印相同的高度和宽度。像这样:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)x
duration:(NSTimeInterval)duration
{
// If the orientation is rotating to Portrait mode...
if (UIInterfaceOrientationIsPortrait(x))
{
NSLog(@"WxH = %fx%f", self.view.bounds.size.width,self.view.bounds.size.height);
}
else // If the orientation is rotating to Landscape mode
{
}
}
在此之后,每次旋转时,上述方法都会打印WxH = 320.000000x460.000000
(即使我在开始时打印 548 时处于纵向模式)为什么高度变为 460?(然后就一直这样)