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 无法在设备旋转时自动调整子视图大小的主要内容,如果未能解决你的问题,请参考以下文章