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

问题描述 投票:5回答:4

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

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

ui

在代码我这样做:

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

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

result

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

ios swift uitableview uistackview
4个回答
2
投票

你有多线标签吗?如果是这样,请确保将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
}

1
投票

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

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


0
投票

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

这是一个apple explanation

HTH


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.