我有一个以“风景”模式启动的应用程序,并且创建了以下UIView以全屏显示。
- (void)loadSignupScreen {
CGFloat screenHeight = self.view.frame.size.height;
CGFloat screenWidth = self.view.frame.size.width;
self.signupContainer = [[UIView alloc] initWithFrame:self.view.bounds];
[self.signupContainer setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleTopMargin];
UIImageView *bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, screenWidth, screenHeight)];
[bgImageView setBackgroundColor:[UIColor darkGrayColor]];
[bgImageView setAlpha:0.8];
[self.signupContainer addSubview:bgImageView];
[self.view addSubview:self.signupContainer];
}
问题是,当我将屏幕旋转到纵向时,它不是全屏显示,而是似乎只有屏幕长度的3/4。如何使其旋转充满屏幕?我在编程时在IB中使用自动大小调整没有问题。
谢谢
最佳答案
您为autoresizingMask
分配了错误的signupContainer
。它应该只是灵活的高度和宽度。
[self.signupContainer setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
此外,
UIImageView
需要一个autoresizingMask
。UIImageView *bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, screenWidth, screenHeight)];
[bgImageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
关于ios - 使用自动调整大小时,UIView在旋转时未调整大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25268625/