我在子类中有这段代码UIViewController
:
- (id)init {
self = [super init];
if (self) {
self.view.frame = [PDToolbox screenFrame];
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.view.backgroundColor = [UIColor redColor];
}
return self;
}
就任何旋转方法而言,我唯一拥有的是:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}
然而,在屏幕旋转到横向后,在视图上执行 NSLog 会显示:
<UIView: 0x10061640; frame = (0 0; 320 480); transform = [0, -1, 1, 0, 0, 0]; autoresize = W+H; layer = <CALayer: 0x10061670>>
我不明白它为什么要进行这种转换,而不是像平常一样旋转?这意味着我在旋转后放置在其顶部并设置为视图大小的任何视图最终都位于 320x480 位置。
编辑:
人们不理解。所以我在它上面放了一个视图,与 UIView 大小相同,使用:
UIView *anotherView = [UIView alloc] initWithFrame:controller.view.bounds];
[controller.view addSubview:anotherView];
如果我以纵向添加另一个视图,则另一个视图以纵向显示,框架为 320x480。
如果我在横向添加anotherView,anotherView 出现在横向中,但仍然具有320x480 的框架,因为出于某种未知原因,controller.view 的框架仍然是这样的。