我在Xcode 6中使用 AutoLayout 用于iOS 8,而我在此自定义表格视图单元格中需要的最后一步是添加 "底部空间到容器边距" 约束,以便我的表视图单元格根据Label Description
中的文本大小增加其大小... < / p>
但是,每当我将底部空间添加到容器边距约束时,我会收到一堆警告,但如果我执行所需的所有更改,它最终会剪切标签(Headline Label
的所有内容,{{{ 1}}),我假设因为它设置了一些更高的优先级。并且在控制台中给出了这个警告,我不确定它是否与此或其他相关:&#34;以下列表中的至少一个约束可能是您不想要的。 &#34;
我无法清理那些AutoLayout警告/错误而无法正常运行项目,所以想知道你对我能做什么或丢失了什么有任何想法?
谢谢!
更新 这里的问题与接受的答案所说的有关,但是我想让Q&amp; A更清楚一点,因为我已经找到了其他遇到此问题的人。
问题在于细胞高度有固定的限制。这些可以在故事板或代码中设置(即Date Label
),因此请务必检查这些地方的两个位置。删除后,请务必设置heightForRowAtIndexPath
。
使用Pin菜单也有帮助。有时标签可以在屏幕外运行,因为它不知道单元的约束在何处基于设备大小。因此,如果标签基于横向布局,但您的标签可以在屏幕外运行,但设备是iPhone 5,例如在肖像中。这是Pin菜单:
此外,可以在Storyboard Assistant编辑器中调试这些内容:设备预览,您可以在其中查看屏幕上的内容的布局和图层,以查看是否有标签重叠或根据正在运行的设备离屏上。如果您想检查多个设备大小,只需点击此图片左下角的加号图标即可。
希望我能够清除这一点,因此它更有意义,并在这样做时提供一些帮助!
答案 0 :(得分:2)
您没有向我们展示您的所有约束,但听起来您对细胞有固定的高度限制。
由于您要让标签描述高度增加,因此自动布局认为标题和/或日期必须缩小(以维持单元格的固定高度)。这就是为什么你会因为不知道哪两个标签没有优先压缩而得到(误导)错误。
删除任何固定高度约束,并确保将单元格高度设置为UITableViewAutomaticDimension
。这应该清除自动布局警告和错误。
smileyborg有一个很棒的Auto Layout table view cell project,可以引导您完成iOS 8自定义单元格功能。