具有固定大小视图和自动调整大小表视图的Autolayout

时间:2014-07-15 16:23:58

标签: ios cocoa-touch uiview autolayout

我有一个视图,我希望有一个“标题”类型块(UIView内的一堆标签),然后是下面的表格视图。标头应为固定大小,表视图应根据运行应用程序的设备扩展到视图的底部。

整个事情都在标签栏控制器内部,我尝试(我认为)几乎所有可能的约束在Interface Builder中试图让标题固定在顶部,表视图适合其余部分视图,在3.5“或4”设备上。

正在发生的事情是标题正确修复并且表格视图位于标签栏下方,或标题在顶部导航栏下方滑动,并且表格下降到标签栏下方,以及获得大量约束错误。

2 个答案:

答案 0 :(得分:1)

第1步

在viewController视图的顶部添加一个UIView。将其toptrailingleading constraints设置为0及其height即可。 这样做会将它固定在一个恒定的高度上。

Step 1

第2步

将UITableView添加到蓝色UIView下方的viewController视图中。将其leadingbottomtrailing constraints设置为0。如果可以,也可以将其top contraint设置为0。在我的情况下,我并没有完全坚持我的蓝色视图。它低于8分,但没关系,我会在第3步中解决这个问题。

Step 2

第3步

现在我选择top constraint并设置其常量0而不是8。您应该看到tableView更改其高度以适应蓝色视图下方的空间。

Step 3

第4步

如果您的蓝色视图位于导航栏下方,则必须将其top constraints更改为84。这是因为状态栏height20,导航栏height64

Step 4

答案 1 :(得分:0)

在没有屏幕截图的情况下,确实有点棘手,但这里有一些可能会有帮助的事情。

1.您的两个视图在界面构建器中具有相同的超级视图。 2.您的标题视图应该具有超前视图设置为0的前导约束,超视图设置为0的尾随约束,超视图设置为0的顶部约束以及设置为您想要的固定高度约束> 0。 3.您的TableView应该具有超前视图设置为0的前导约束,超视图设置为0的尾随约束,标题与其自身设置为零之间的垂直约束以及超视图设置为零的底部约束。 / p>

如果设置了这些并且您无法获得所需的效果。确保视图是您想到的大小,即将TableView背景设置为粉红色,以确保它不仅仅是一个位于错误位置的单元格而不是tableview。

希望这有帮助。