uitableviewcell 中的自动布局问题

Posted

技术标签:

【中文标题】uitableviewcell 中的自动布局问题【英文标题】:Problems with autolayout in uitableviewcell 【发布时间】:2018-12-04 10:19:10 【问题描述】:

像往常一样,我很难纠正约束。这就是我的表格视图的工作方式:

这是默认显示。单元格的高度为 57。 当您单击一个单元格时,我将选定的单元格高度更改为 90,以便显示以下信息:

我的问题是设置约束,使其看起来与两个图像中的完全一样。什么是最好的解决方案?

如果我制作了两个视图并将它们放在我的 uitableview 中会更容易,这样会为特定视图设置约束,而不是在用户单击时更改单元格的框架等。如果有人想要,我上传了我的项目更好地了解正在发生的事情:

https://ufile.io/u2y5p

【问题讨论】:

【参考方案1】:

您还可以将您的信息放在UIStackView 中并使其不可见,直到您单击单元格,使用UITableViewAutomaticDimension 使单元格的高度动态化,因此当您使这些信息可见时,重新加载 UITableView 将让你的细胞高度更高

【讨论】:

【参考方案2】:

假设您在 TableView 上显示来自模型数组的数据。在模型类中保留一个名为“isExpanded”的属性,并将其值默认设置为 false。

现在,使用下面的代码:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 
    let dataModel = self.arrayOfModels[indexPath.row]
    return dataModel.isExpanded ? 100 : 50

在选择一行时:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
    let dataModel = self.arrayOfModels[indexPath.row]
    dataModel.isExpanded = true
    self.tableView.reloadRows(at: [indexPath], with: .automatic)

如果您有任何疑问或需要更多说明,请告诉我。

【讨论】:

很抱歉,我认为您误解了我的问题。我已经实现了单元格扩展的代码,反之亦然。我的问题是设置适用于扩展的约束。

以上是关于uitableviewcell 中的自动布局问题的主要内容,如果未能解决你的问题,请参考以下文章

带有 UITextView 的 UITableViewCell 中的自动布局

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

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

UITableViewCell 中的 UITextField 使用自动布局

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

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