今天玩iOS6,我不得不在各种方向检查视图帧尺寸,我认为我在iOS5中理解。 (我知道自动布局在很多情况下解决了基本问题,但我仍然觉得我可能出于各种原因需要这个检查?)。
关闭自动布局后,检查视图尺寸会返回正确的尺寸大小,但不会返回正确的边缘。也就是说,在iPhone上的肖像.width属性= 320,在横向上.width属性= 300,而我希望300是高度尺寸的值。
这对我来说有点奇怪,因为self.view确实可以正确地缩放到窗口,但另一个设置为self.view框架的视图却没有。通过检查方向然后获得正确的数字,这很容易解决,我猜,但是我错过了一些明显的东西,或iOS6中的一些新规则?
//always gives aprox 300 for width despite device orientation
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
screenRect = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
screenRect = self.view.window.frame;
NSLog(@"screen rect size = %f x %f", screenRect.size.width, screenRect.size.height);
[imageView setFrame:screenRect];
}
//a button to check orientation. always gives aprox 300 for width despite device orientation
- (IBAction)checkScreenSize:(id)sender {
screenRect = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
NSLog(@"screen rect size = %f x %f", screenRect.size.width, screenRect.size.height);
screenRect = [[UIScreen mainScreen]applicationFrame];
NSLog(@"screen rect size = %f x %f", screenRect.size.width, screenRect.size.height);
}