如何在其中使用UIStackView自定义UITableViewCell的大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在其中使用UIStackView自定义UITableViewCell的大小相关的知识,希望对你有一定的参考价值。

我无法在里面用UITableViewCell实现自我尺寸UIStackView

对于UITableViewCell我正在做这样的事情:

ui

在代码我这样做:

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.estimatedRowHeight = 80
}

但是当我运行应用程序时,UITableViewCells不会调整大小:

result

我怎么能错过让UITableViewCell自我调整内部的UIStackView

答案

你有多线标签吗?如果是这样,请确保将IB中的lines属性设置为0而不是1。

堆栈顶部和底部。

如果不这样做,请检查以下内容:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}
另一答案

使自定义单元格的自动布局在UITableViewCell上工作的技巧是确保您有限制来固定所有侧面的每个子视图 - 也就是说,每个子视图应该具有前导,顶部,尾部和底部约束。然后,子视图的固有高度将用于指示每个单元格的高度。

这是a nice tutorial将帮助您完成它。

另一答案

尝试固定堆栈视图本身。请记住,stackView有责任同等空间,均匀分布等,因此它需要在自身和superView之间使用约束来计算所有这些。

这是一个apple explanation

HTH

另一答案

细胞大小调整正常。您的问题是您为堆栈视图设置了固定的高度。

水平堆栈视图中的视图将其height设置为64,最有可能将其标准优先级设置为1000。此Stack View最有可能将其分布设置为Fill。你基本上告诉Stack View,包含的图像必须用64的高度填充堆栈视图。这也将堆栈视图限制为64,并且除了View之外还有垂直堆栈视图。如果希望View旁边的垂直堆栈视图大于Center,请将包含View的水平Stack View的分布更改为64

以上是关于如何在其中使用UIStackView自定义UITableViewCell的大小的主要内容,如果未能解决你的问题,请参考以下文章

基于模板创建自定义视图

如何在特定单词的垂直 UIStackView 换行符中制作 UITextLabel 文本 l

自定义 UITableViewCell 的高度

自定义“添加”视图动画到 uistackview

UIStackView背景色和自定义间距

UIStackView 不调用自定义 UIView 的绘制