容器视图和子视图的大小相同
我有一个iOS项目,其中有我的主视图控制器,A
和另一个ViewController B
。 B
作为子视图控制器嵌入在A
中。整个事情在Interface Builder中使用Container View进行设置。现在容器视图和子视图的大小相同
,B
有它反应平移手势来调整其观点,一些逻辑。这一切都正常工作,问题是容器视图总是保持相同的大小,并不会调整B
的根视图。我希望容器视图的大小与B
的根视图保持同步。
这是最好的方法是什么?有什么方法可以在Interface Builder中进行设置吗?我目前发现的唯一可行解决方案是创建一个BDelegate
,A
监听并调整容器视图大小。有没有更简单的方法来实现这一目标?
感谢
感谢您的回答,我被指出了正确的方向 - 具体而言,这是不可能的我以为是这样。
有没有办法有一个父视图控制器和子视图控制器的视图之间的限制 - 无论是在IB,也没有在代码
据我所看到的,有两种方式解决这个问题:
不要使用第二个UIViewController。使你的子视图控制器的根视图成为你自己的实际子视图,并且只有一个UIViewController。
请勿使用自动布局。手动管理子视图控制器视图的框架,并在必要时将委托回调回到父视图控制器。在这些委托回调中,您的父视图控制器可以对子视图控制器视图的大小更改作出反应。
作为一般规则,丢弃解决方案#2 ...自动布局和约束是管理不同屏幕尺寸和方向的完美方式。有时您可能想使用代码来设置/更改特定的约束值,但您仍然使用自动布局。 – DonMag
“容器视图”的想法是“自动加载”子视图控制器,并将其视图显示为容器的子视图。因此,如您所见,更改连接的“子”视图的大小不会更改容器。你当然可以通过代码来实现,但是如果你正在寻找一个自动布局的选项,你可能会更好*不使用容器视图,而只是把'B'作为子视图开始。 – DonMag