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

Posted

技术标签:

【中文标题】iOS 无法在设备旋转时自动调整子视图大小【英文标题】:iOS unable to autoresize subviews when device rotation 【发布时间】:2012-06-04 17:48:53 【问题描述】:

我尝试了在其他帖子中找到的几种解决方案,但在设备旋转时自动调整子视图大小仍然存在问题。我的布局 (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];

【问题讨论】:

我假设您的视图控制器正确地允许旋转发生? 用'||'表示的不是'or',不是'|' ?也许这不是问题。 @DevinGund 在有条件的情况下是,但是当你想要按位“或”时它是 |。 【参考方案1】:

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

【讨论】:

【参考方案2】:

您可以在 Nib 文件的帮助下设置 Autoresize 属性。从NIB文件中正确设置后,您可以检查一下吗?

【讨论】:

【参考方案3】:

对于要在设备旋转时调整其大小的给定视图,它的父视图需要将其autoresizesSubviews 属性设置为YES。 (从您的代码片段中不清楚您的视图层次结构是什么。)尝试更改

[vistaB setAutoresizesSubviews:YES];

[vistaB.superview setAutoresizesSubviews:YES];

【讨论】:

以上是关于iOS 无法在设备旋转时自动调整子视图大小的主要内容,如果未能解决你的问题,请参考以下文章

UIView 子视图不是为 iPad 自动旋转或自动调整大小

在 iOS 7 中重新计算旋转时的子视图大小

调整超级视图大小时自动调整子视图大小

添加子视图时,如果应用程序处于横向模式,则视图不会调整大小

如何将 UIView 调整为横向?

调整超级视图大小时自动调整子视图