uitableviewcell中的自动布局问题

时间:2018-12-04 10:19:11

标签: ios swift uitableview autolayout

与往常一样,我在困难时期很难正确地执行约束。这是我的表视图的工作方式:

这是默认显示。单元格的高度是57。 enter image description here 当您单击一个单元格时,我将所选单元格的高度更改为90,因此它将显示以下信息: enter image description here

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

如果我创建了两个视图并将它们放置在uitableview内会更容易,那么将为特定视图设置约束,而不是在用户单击等时更改单元格的框架。我上传了我的项目(如果有人想要)发生了什么的更好的概述:

https://ufile.io/u2y5p

2 个答案:

答案 0 :(得分:0)

您还可以将您的信息放入UIStackView内,使其不可见,直到您单击该单元格为止,然后使用UITableViewAutomaticDimension使该单元格的高度动态变化,这样,当您使这些信息可见时,重新加载UITableView将使您的单元格的高度更高

答案 1 :(得分:0)

假设您要在模型模型的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)
}

如果您有任何疑问或需要更多说明,请与我联系。