自动布局约束无法按预期工作

时间:2015-10-09 08:29:41

标签: ios uitableview autolayout

我有一个具有子视图的UITableViewCell,其中包含一个图像视图和一个标签。我想使用子视图作为在单元格内容周围给出一些余量的方法,从而在单元格之间给出边距。这似乎是很多人在网上推荐的方式。

我已经设置了我的约束,如下所示:

enter image description here

我在视图控制器中的所有视图上执行了更新帧。故事板显示它正如我期待它在手机上。当我在手机上运行时,我明白了......

enter image description here

我在这一点上完全感到困惑。我花了两天的时间阅读并试图布局一个简单的UITableViewCell,显然没有很好地理解自动布局的工作方式。

我甚至只是沿着建议的边界(蓝线)铺设了所有东西,然后告诉故事板产生建议的约束。此时,单元格的内容刚刚从屏幕右侧发出50%,并且无法查看。

所以有两个问题:

故事板经常向我展示一些在我的实际设备上没有准确表示的东西。这在iOS开发中相当常见吗?我是否应该完全依赖故事板自动布局表示?

为了让单元格在我的设备上进行布局,我需要对这些约束做些什么,就像我的故事板中显示的那样?我设置错误有什么限制?

1 个答案:

答案 0 :(得分:1)

默认情况下,Storyboard不会根据任何设备显示内容。您可以在其大小属性中将其设置为当前设备(默认情况下,它是“推断”)。约束用于在所有设备上显示相同的视图。它们会根据显示大小自动调整UIelements。因此,如果您希望应用程序在不同大小的设备上运行,则必须依赖约束。

我认为你设置的限制太多了。如果您不熟悉自动布局,则会发生这种情况。请尝试阅读this指南。它非常有帮助。