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

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

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

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

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

https://ufile.io/u2y5p

【问题讨论】:

    标签: ios swift uitableview autolayout


    【解决方案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)
      }
      

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

      【讨论】:

      • 很抱歉,我认为您误解了我的问题。我已经实现了单元格扩展的代码,反之亦然。我的问题是设置适用于扩展的约束。
      猜你喜欢
      • 2017-02-13
      • 2013-10-01
      • 1970-01-01
      • 2013-10-08
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      相关资源
      最近更新 更多