【发布时间】:2014-07-03 01:44:49
【问题描述】:
我有一个UITableView,其中单元格的固定高度为 100 磅。这些单元格是在一个 xib 文件中创建的,该文件使用 3 个约束将UILabel 固定到单元格contentView 的左、右和上边缘。标签的垂直拥抱优先级设置为 1000,因为我希望单元格的高度尽可能小。
当 xib 文件中单元格的宽度设置为 320 磅时,与 iPhone 上的 tableView 的宽度相同,自动布局按预期工作。但是,当我将单元格的宽度设置为小于 320 磅时,我得到了意想不到的结果。 (我想在具有不同宽度的 tableViews 中使用相同的单元格,例如在通用应用程序中)
例如:当我将宽度设置为 224 磅并给标签一个在该宽度上占用 2 行的文本时,标签的高度将增加以适应 2 行,但是当单元格随后调整为 320 磅时为了适应该宽度的 tableView,文本仅占 1 行,但标签的高度保持在 2 行。
我已经在 GitHub 上放了一个示例项目来演示这个问题:https://github.com/bluecrowbar/CellLayout
有没有办法让UILabel 始终调整大小以包含其文本内容?
【问题讨论】:
-
在标签上设置preferredMaxLayoutWidth似乎可行,但我不确定在哪里计算和设置它的值。
标签: ios uitableview autolayout