故事板中自动布局标签的表格视图单元格约束[关闭]

Posted

技术标签:

【中文标题】故事板中自动布局标签的表格视图单元格约束[关闭]【英文标题】:Table View Cell constraints for Auto Layout labels in Storyboard [closed] 【发布时间】:2014-10-31 22:27:07 【问题描述】:

我在 Xcode 6 中为 ios 8 使用 AutoLayout,我需要在这个自定义表格视图单元格上的最后一步是添加一个 "Bottom Space to Container Margin" 约束,因此我的 Table View Cell 会根据 Label Description...

中的文本大小增加其大小

然而,每当我将底部空间添加到容器边距约束时,我都会收到一堆警告,但如果我做了所有需要的更改,它最终会剪裁标签(Headline Label 的全部,Date Label 的底部) ,我假设是因为它设置了一些更高的优先级。并在控制台中给我这个警告,我不确定它是否与此或其他有关:“可能以下列表中的至少一个约束是你不想要的。”

如果不清理那些 AutoLayout 警告/错误,我就无法真正运行该项目,所以想知道您是否对我可以做什么或缺少什么有任何想法?

谢谢!

更新: 这里的问题与接受的答案所说的有关,但我想让 Q&A 更清楚一点,因为我已经为遇到这个问题的其他人弄清楚了。

问题在于单元格的高度有固定的限制。这些可以在故事板或代码中设置(即heightForRowAtIndexPath),因此请务必检查这两个地方。删除后,请确保设置UITableViewAutomaticDimension

还有帮助的是使用 Pin 菜单。有时标签可能会跑出屏幕,因为它不知道单元格的约束基于设备大小的位置。因此,如果标签基于横向布局但设备是 iPhone 5 并且是纵向的,则您的标签可以在屏幕外运行。这是 Pin 菜单:

此外,这些东西可以在 Storyboard Assistant Editor:Device Preview 中进行调试,您可以在其中查看屏幕上的布局和图层,以查看是否有标签重叠或离开屏幕,具体取决于它正在运行的设备在。如果您想检查多个设备的尺寸,只需点击此图片左下角的加号图标即可。

希望我能够澄清这一点,使其更有意义,并在此过程中提供一些帮助!

【问题讨论】:

【参考方案1】:

你没有向我们展示你所有的限制,但听起来你有一个固定的单元格高度限制。

由于您让标签描述高度增加,自动布局认为标题和/或日期必须缩小(以保持单元格的固定高度)。这就是为什么您会收到(误导性)错误,即不知道两个标签中的哪个标签优先不压缩。

移除任何固定高度限制,并确保您的单元格高度设置为UITableViewAutomaticDimension。这应该会清除自动布局警告和错误。

smileyborg 有一个出色的 Auto Layout table view cell project,它将引导您了解 iOS 8 的自调整单元格功能。

【讨论】:

感谢您的好评!我可以在情节提要中设置UITableViewAutomaticDimension 还是仅在代码中设置? 另外,我基本上对每个项目都有前导/尾随约束,然后在每个项目之间垂直,如果这有帮助的话。如果这也有帮助,请在原始问题中添加图片。 有趣,感谢您的提醒!

以上是关于故事板中自动布局标签的表格视图单元格约束[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用故事板中定义的单元格计算集合视图单元格高度?

故事板自动布局将视图放置在表格单元格中,并将尾随到超级视图约束固定到最左侧

使用 Storyboard 的 Swift 动态表格视图单元格高度

XCode故事板中的自定义静态表格单元格?

使用自动布局约束动态调整表格视图单元格的大小

UITableViewCell 子类布局在禁用自动布局的故事板中搞砸了