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 中的 UITextField 使用自动布局