与往常一样,我在困难时期很难正确地执行约束。这是我的表视图的工作方式:
这是默认显示。单元格的高度是57。 当您单击一个单元格时,我将所选单元格的高度更改为90,因此它将显示以下信息:
我的问题是设置约束,使其看起来与在两个图像中都一样。最好的解决方案是什么?
如果我创建了两个视图并将它们放置在uitableview内会更容易,那么将为特定视图设置约束,而不是在用户单击等时更改单元格的框架。我上传了我的项目(如果有人想要)发生了什么的更好的概述:
答案 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)
}
如果您有任何疑问或需要更多说明,请与我联系。