您好我需要帮助了解如何根据其内容调整单元格大小。
首先,当然我找到了许多链接:
iOS: Multi-line UILabel in Auto Layout
https://www.youtube.com/watch?v=CkvZEJ7dIfw
https://github.com/williamhqs/GSTableViewDynamicHeight
正如我们所说的关于git示例(最后一个链接),我无法理解如何更改某些标签并使其有效。例如,如果我删除UILabel并创建新的并将其与content属性绑定(内容 - 它是底部标签的IBOutlet属性)。我似乎失去了一些设置,而且细胞不会伸展。
所以我想我不太了解如何去做。
我想要了解的内容:
同样在git示例中,我们有一个标签可以改变自己的大小。如果我们有2个带有动态内容的UILabel如何设置呢?
如果你有一些链接或视频请放在这里,因为我真的卡住了。谢谢!
我知道这是重复的问题,但我无法理解如何设置它。
答案 0 :(得分:2)
要使Self Sizing Cells工作,有三个步骤:
estimatedRowHeight
rowHeight
设置为UITableViewAutomaticDimension
对于第2步和第3步,只需在viewDidLoad方法中添加这两行就可以了
tableView.estimatedRowHeight = 44.0 // or whatever you want
tableView.rowHeight = UITableViewAutomaticDimension
第1步,这是自我调整过程中最重要的部分 你需要记住的是,“自我调整需要从你的约束中获得它的大小。”
基本上我们需要确保在这里正确设置单元格的顶部空间和底部空间约束是一个例子:
只有两个带有约束顶部,底部,右侧和左侧空间的标签和容器(见图)UILabels
Lines属性为0,因此您允许多行
我正在处理的项目的另一个例子:
底线:
标签约束应该推动表格视图单元格的大小并使其更高。因此,请始终检查顶部和底部约束。
此外,您可能会使用多行来处理使用UILabel的问题,因为
UILabel和NSTextField的内在内容大小不明确 多行文字。
因此请务必始终设置yout标签的preferredMaxLayoutWidth
属性:
- (void)layoutSubviews
{
[super layoutSubviews];
self.contentLabel.preferredMaxLayoutWidth = self.contentLabel.frame.size.width;
}
有关此问题的更多信息,请阅读:
iOS Autolayout multi line UILabel
iOS multi-line UILabel in Auto-layout
有关动态表视图单元格高度的更多信息,这里有一些有用的资源:
UITableView Tutorial: Dynamic Table View Cell Height