UITableviewcell 中的自动布局问题,其中 Uitableview 作为子视图

Posted

技术标签:

【中文标题】UITableviewcell 中的自动布局问题,其中 Uitableview 作为子视图【英文标题】:Autolayout issue in UITableviewcell Which has Uitableview as subview 【发布时间】:2017-04-11 17:26:16 【问题描述】:

我对自动布局非常陌生。我已经尝试了所有方法并在网上搜索但找不到正确的答案。这就是我想做的事情。我有一个 UITableView1 和一个 customcell 。现在在 customcell 我有一个 UITableView2 作为子视图。

这是我的问题 UITableView2 使用自动高度正确加载数据。但是我的 UITableView1 单元格高度没有按照 UITableView2 高度增加。这是我的观点的图像,可以很容易理解。请帮我解决这个问题

【问题讨论】:

尝试让第二个tableView的底部anchor等于第一个tableViewCell的bottomAnchor,并且tableView2的高度大于等于一个常数。然后对于第一个tableViewCell的heightForRowAt方法,使用tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = constant-here 然后在tableView1的heightForRow方法中,返回UITableViewAutomaticDimension 您好,感谢您的快速回复..你能帮我举个例子吗..我无法得到这个。 您使用的是编程约束还是情节提要约束? 我正在使用故事板..您可以通过任何方式帮助我.. @Rahul for Tableview1,你是如何确定高度的?高度是固定的还是您将其设置为自动尺寸? 【参考方案1】:

基本上还好:

首先,您必须让 tableView1 具有自动调整大小的单元格。 为此,在您的 tableView1 类中,您需要在 viewDidLoad() 方法中添加以下内容:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = constant-value-here

之后,您需要将以下自动布局约束添加到您的 UITableViewCell 子类中。

    创建一个方法来调用您的 init 方法并调用它 setupCell()

    在该方法中,添加以下内容:

    tableView2.centerXAnchor.constraint(equalTo: centerXAnchor).isActive = true tableView2.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true tableView2.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -8).isActive = true tableView2.heightAnchor.constraint(greaterThanOrEqualTo: another-constant-value here).isActive = true

还要确保 tableView2.translatesAutoresizingMaskIntoConstraints 设置为 false 并且不要忘记在 tableView 子类的 init 方法中调用 setupCell 方法。

如果有不清楚的地方请告诉我。

【讨论】:

"another-constant-value here" 我们应该把哪个值放在这里。 一个常数值,你认为的 tableView 高度的近似值 它不工作..这是我的示例项目..github.com/Rahul63/Sample.git..can你请看看它..帮助我.. 好吧,给我大约 2-3 小时,我会为你修好! 看看我做的这个虚拟项目,你可以设置tableView的高度,单元格会自动调整大小以适应。 github.com/ibrahimchiha/TableView

以上是关于UITableviewcell 中的自动布局问题,其中 Uitableview 作为子视图的主要内容,如果未能解决你的问题,请参考以下文章

带有 UITextView 的 UITableViewCell 中的自动布局

缩进 UITableViewCell 中的所有自动布局约束

UITableViewCell中的自动布局约束不匹配

UITableViewCell 中的 UITextField 使用自动布局

uitableviewcell中的swift uitableview,自动布局始终高度为0

使用自动布局的 UITableViewCell 中的异常