为什么Autolayout约束不会在运行时出现?

时间:2017-07-22 04:10:05

标签: ios uitableview autolayout

我正在尝试创建UITableViewCell的自定义子类,在图像的右侧显示图像和一些标签。我将UIImageViewUILabels排列在堆栈视图中,最外层的视图固定在内容视图的所有四个边上。 Screenshot of storyboard Screenshot of constraints

但是当我在模拟器中运行应用程序时,我看不到图像视图。调试视图层次结构,我发现它们正在被剪裁。 Screenshot of view hierarchy

通过关注最外面的堆栈视图以及“显示约束”来进一步挖掘,我根本看不到我的自动布局约束(相反,我得到每个最外层堆栈视图的模糊位置运行时警告)。 Screenshot of view hierarchy focused on stack view

向右展开的文本标签设置为0行,表格视图的值为常量estimatedRowHeight,其rowHeight设置为UITableViewAutomaticDimension,所以我认为如果这些约束正在起作用,表中的行将调整大小以适合内容。也许值得注意的是,我添加的任何宽度或高度自动布局约束确实在我调试视图层次结构时出现,所以我知道运行时存在一些约束,我只是不能为我的生活找出为什么相对于内容视图的约束是不

2 个答案:

答案 0 :(得分:3)

经过长时间的摔跤,让经验丰富的开发人员查看我的项目后,似乎设置的方式没有任何问题。使用完全相同的布局和约束从头开始重新创建表视图单元,并使用完全相同的代码修复此问题。在开始发生之前,我已经对堆栈视图和约束进行了大量的讨论,所以当你在模拟器中运行应用程序时,可能会让Xcode进入一个没有正确设置约束的地方。

答案 1 :(得分:2)

尝试解决运行应用程序并查看此屏幕时打印到控制台日志中的所有警告。因为您不能总是忽略警告,所以必须通过纠正或解决约束中的问题来删除许多警告。这是唯一可以帮助您的解决方案。