是否可以实现可扩展的 table header 视图?

Is it possible to achieve expandable table header view?

我已经实现了 table 带有可扩展部分的视图,即用户选择的部分将包含该特定类别的项目数。对于封闭部分,将有 0 个项目。

现在为了更好的 UI 目的,我想实现以下类型的 table 视图,它具有可扩展的 header 视图?在此图像中,我们可以看到该部分看起来像一个包含圆角和边框的项目的组。根据默认 UITableView,此行为是不可能的。不过,如果有人实施了,请提出一些建议是否可行。

struct WrapperObject {
    var header : HeaderObject
    var listObject : [ObjectDetail]
}

struct HeaderObject {
    var id : String
    var isOpen : Bool
}

struct ObjectDetail {
    var id : String
    var detailInfo : String
}

在您的 VC 或数据源中。创造 : private var internalData : [WrapperObject]

设置数据后,在UITableView的delegate中

extension ViewController : UITableViewDelegate {
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
            // TODO : Custom your own view
            // have a callback to set property isOpen =  true or false to the internalData.
            return UIView()
        }
    }

extension ViewController : UITableViewDataSource {

        func numberOfSections(in tableView: UITableView) -> Int {
            return internalData.count
        }

        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            if internalData[section].header.isOpen {
                return internalData[section].listObject.count
            } else {
                return 0
            }

        }

        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            return UITableViewCell() // TODO: custom your own cell
        }
    }