0

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

这是它的图片: 在此处输入图像描述

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

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

4

2 回答 2

0

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

理论上只是[rightContainerView superview]

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

[view constraints]

于 2013-08-16T20:35:34.547 回答
0

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

self.leftCon.constant = -200; // this will move it 200 point to the left, and the right view will expand by 200 points.
于 2013-08-16T22:05:33.153 回答