如何使用autolayout移动两个子视图控制器?

时间:2013-08-16 20:13:00

标签: iphone ios xcode autolayout

我正在制作一个带有左侧边栏容器视图的视图控制器和一个作为导航控制器的主容器视图。

以下是它的图片: enter image description here

我正在使用自动布局,所以我可能只使用约束。

如何让屏幕只显示此视图控制器的一部分? 我无法更改框架,因为我正在使用自动布局......

2 个答案:

答案 0 :(得分:0)

首先,尝试调整包含视图的框架(持有这两个容器的框架)向左移动。

理论上它只是[rightContainerView superview]

如果这对您不起作用,您可以始终遍历在任一视图上设置的约束并删除/调整它们,直到获得所需的布局。您可以保持在视图控制器上的数组中删除的约束,然后在需要还原时将其添加回来。

请参阅[view constraints]

答案 1 :(得分:0)

您只需调整约束的常量参数即可。因此,您希望两个容器视图对superview的顶部和底部有约束。右侧容器应固定在superview的右侧,并且从左侧容器视图的左侧到右侧具有0长度约束(但没有固定宽度)。为左侧容器视图提供超级视图左边缘的约束和宽度约束。这应该给你足够的约束来定义你的起点。将左侧容器视图的IBOutlet约束到superview的左边缘(让我们称之为leftCon)。然后,当您想要将左侧容器视图移离屏幕左侧时,请更改其leftCon约束的常量值:

self.leftCon.constant = -200; // this will move it 200 point to the left, and the right view will expand by 200 points.