自动布局 UITableViewCell

Posted

技术标签:

【中文标题】自动布局 UITableViewCell【英文标题】:AutoLayout UITableViewCell 【发布时间】:2014-11-27 16:53:52 【问题描述】:

我正在为 UITableViewCell 使用 autoLayout

这是我的 xib 和约束

在这里我设置了约束,使得 tableView 具有动态高度

每当我在 iphone5 上运行时,它看起来都是我想要的正确方式

但是当我在 ipad 上运行相同的东西时,它会这样显示

所以我不明白如何使 ipad 版本看起来与 iphone 版本相同,不明白我缺少哪些约束。

【问题讨论】:

【参考方案1】:

使用自动布局约束时,将您想要的内容表述为句子。

例子:

我希望将黄色视图固定在右侧。 我希望将黄色视图固定在顶部和底部。 我希望黄色视图的宽度为 50。 我希望将标签固定在顶部和底部。 我希望将标签固定在左侧。 我希望我的标签固定在我的黄色视图上,它们之间有 10 个像素。 (因此宽度随着父视图的宽度而增长)。

你有所有的限制。现在你只需要一个一个地添加它们。顶部、底部、右侧到超级视图和宽度约束,黄色视图的常数为 50。 Top、Bottom、Left 到 superview 和 Right to Yellow 视图,常量为 10 个约束。

您已将黄色视图固定在超级视图的左侧,因此在更大的屏幕上,它将增长以满足该约束。

【讨论】:

嘿,谢谢,你是对的。还要感谢您的示例,从长远来看,它将对我有所帮助。我有疑问,如果我想为 ipad 的黄色视图设置不同的宽度并为 iphone 设置不同的宽度。 你好@Lord Zsolt,你能看看这个***.com/questions/28087274/…【参考方案2】:

看起来您将黄色视图的左边缘固定到表格视图单元格的左边缘,偏移量为 300pt。这意味着在 iPad 上,黄色视图仍然从屏幕左边缘偏移 300 点,并且会增长以填充剩余的可用宽度。

您可能想要做的是将黄色视图的 边缘固定到表格视图单元格的 边缘,偏移量为 0pt,然后 将黄色视图的宽度固定到所需的大小。

【讨论】:

硬编码黄色的宽度,让文本是从前缘到超级视图,从后缘到黄色视图的动态宽度。 你好@Tim 谢谢你的工作。如果我希望 ipad 的黄色视图和 iphone 的黄色视图具有不同的宽度怎么办? @Ranjit:查看 ios 8 中提供的适应性 API。您可以为不同的 size classes添加不同的约束(例如,窄宽度约束和更宽的宽度约束) >,这在 iPhone 和 iPad 之间会有所不同(除其他外)。

以上是关于自动布局 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 6 中启用自动布局,在 < iOS6 中禁用自动布局

iOS scrollView自动布局技巧之二 - 纯代码自动布局

iOS 自动布局过程

按钮和自动布局

使用自动布局的 UIToolBar 布局约束问题

以编程方式将自动布局添加到肋骨中添加的现有自动布局视图