如何在 Interface Builder 中的 UIViewController 中自动调整 UIView Outlet 的大小
Posted
技术标签:
【中文标题】如何在 Interface Builder 中的 UIViewController 中自动调整 UIView Outlet 的大小【英文标题】:How to Auto Resize , UIView Outlet in UIViewController in Interface Builder 【发布时间】:2015-08-22 16:42:38 【问题描述】:我有 UIView 大小设置为 w Any 和 h Any 的 .xib。问题是它没有正确调整大小。我还在.xib 中使用自动布局。目前只有一个视图(UIViewController的视图出口)。
我正在寻找为具有多种分辨率的屏幕调整大小的视图,例如:640 * 480、720 * 480、1024 * 768 等。
因此,如果执行以下操作,则调整大小不起作用。
Controller *myController=[[Controller alloc] initWithNibName:@"Controller" bundle:nil];
[myBaseView addSubview:myController.view];
我还尝试将“内容压缩阻力优先级”设置为 1,这将允许它以较小的阻力调整大小。
但是,以下工作
UIView *aTestView=[[UIView alloc] initWithFrame:myBaseView.bounds]];
[myBaseView addSubview: aTestView];
【问题讨论】:
【参考方案1】:您需要设置视图控制器的视图框架:
Controller *myController=[[Controller alloc] initWithNibName:@"Controller" bundle:nil];
[myController.view setFrame:superViewFrame];
[myBaseView addSubview:myController.view];
【讨论】:
这很简单。但是,我认为 autoresize 会考虑 baseView 框架并调整大小。 当你使用 addSubview 方法来展示你的视图,它开启了自动布局,它不会用正确的尺寸来布局视图以匹配父尺寸,就像使用 presentViewController 或 pushViewController 的情况一样。以上是关于如何在 Interface Builder 中的 UIViewController 中自动调整 UIView Outlet 的大小的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Interface Builder 中的 UIViewController 中自动调整 UIView Outlet 的大小
在 Cocoa/Interface Builder 中,单击按钮后如何清除文本字段中的文本
UIView 的子类。如何通过 Interface Builder 添加?
如何将 UITableViewCell 的内容视图转换为 Interface Builder 中的普通 UIView?