iOS设备旋转时子视图无法自动调整大小

4

我尝试了其他帖子上找到的几种解决方案,但在设备旋转时仍然存在自动调整子视图的问题。我的布局(IB)有三个视图,并且只适用于当前视图的调整大小。如果在旋转设备后,显示的视图未经过调整大小,并保留以前的尺寸,则设置了自动调整子视图及其掩码... 我做错了什么或者遗漏了什么?任何帮助都将不胜感激,谢谢!

- (void)viewDidLoad
{

    [super viewDidLoad];

    [self.view setAutoresizesSubviews:YES];
    [self.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
    [vistaSocial setAutoresizesSubviews:YES];
    [vistaSocial setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
    [vistaB setAutoresizesSubviews:YES];
    [vistaB setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

1
我假设你的视图控制器已经正确地允许旋转发生了? - heckman
"或者"不是用"|"表示而是用"||",这也许不是问题所在。 - dgund
@DevinGund 在条件语句中可以使用“是”,但当你想要执行按位“或”操作时,应该使用“|”。 - heckman
3个回答

2

我认为您在xib文件上没有使用正确的调整大小属性。据我所知,您必须在当前控制器上添加了2-3个视图;但是自动调整大小在某个地方出错了。请逐个尝试并使用正确的设置。 如果我预测错误,您可以分享任何屏幕截图以获得更好的理解。


2
您可以通过Nib文件设置自动调整大小属性。请确认您已经正确地从Nib文件设置了它吗?

1

为了使给定的视图在设备旋转时调整其大小,需要将其父视图的autoresizesSubviews属性设置为YES。(从您的代码片段中无法清楚地了解您的视图层次结构。)尝试更改。

[vistaB setAutoresizesSubviews:YES];

[vistaB.superview setAutoresizesSubviews:YES];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接