首页 > 解决方案 > 在运行时在 tableview 单元格中添加子视图并展开 tableview 单元格的最佳方法

问题描述

在此处输入图像描述 在此处输入图像描述

我有一个表格视图(附图片),其中有一个单元格及其状态(多个)。

当用户单击单元格时,它会展开显示状态。

我的问题是实现此功能的最佳方法是什么,我觉得我所拥有的不是一个好方法。

现在,当用户单击时,我在 didSelectRowAt 中设置了一个变量并重新加载单元格。当我重新加载单元格时,我检查变量并添加/删除子视图。

我在这样的stackview中添加子视图:-

    for _ in 1...4 {
        let view = ActivityFeedStatusView()
        let constraint = NSLayoutConstraint(item: view, attribute: .height, relatedBy: .equal,
                                            toItem: nil, attribute: .height, multiplier: 1.0, constant: 70.0)
        NSLayoutConstraint.activate([constraint])
        stackview.addArrangedSubview(view)
    }

正如您所看到的,它会一直被添加cellForRowAt将被称为 plus 它也给了我约束警告。

我愿意接受任何形式的反馈和建议,感谢您的阅读。

注意:此代码只是生成和显示视图的测试代码

标签: iosswiftxcodeuitableview

解决方案


您的解决方案对我来说似乎很好:我的完整解决方案是: 1.通过委托方法 didSelectCellAtIndex 跟踪先前选定的单元格索引和当前选定的单元格索引。2.在以前的单元格索引和当前单元格索引处重新加载单元格。3.在单元格初始化代码中。如果在前面,则删除所有状态子视图。否则,在此单元格上添加状态子视图。4.手动计算高度并重新加载或使用自动布局进行自我高度约束。


推荐阅读