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



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

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

您可以在 Nib 文件的帮助下设置自动调整大小属性。从NIB文件正确设置后,您能否检查一下?

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

[vistaB setAutoresizesSubviews:YES];

[vistaB.superview setAutoresizesSubviews:YES];

最新更新