Ios 是否可以实现可扩展的表头视图?

Ios 是否可以实现可扩展的表头视图?,ios,swift,uitableview,uitableviewsectionheader,uitableviewautomaticdimension,Ios,Swift,Uitableview,Uitableviewsectionheader,Uitableviewautomaticdimension,我已经用可扩展部分实现了表视图,即用户选择的部分将具有该特定类别的项目数。对于闭合部分,将有0项 现在为了更好的用户界面,我想实现以下类型的表视图,它具有可扩展的标题视图?在这幅图中,我们可以看到该部分看起来像一个包含圆角和边框的项目的组。根据默认的UITableView,这种行为是不可能的。但是,如果有任何一个已经实施,请给出一些建议,它是否可行 在VC或数据源中。创建: private var internalData:[WrapperObject] 设置数据后,在UITableView的

我已经用可扩展部分实现了表视图,即用户选择的部分将具有该特定类别的项目数。对于闭合部分,将有0项

现在为了更好的用户界面,我想实现以下类型的表视图,它具有可扩展的标题视图?在这幅图中,我们可以看到该部分看起来像一个包含圆角和边框的项目的组。根据默认的UITableView,这种行为是不可能的。但是,如果有任何一个已经实施,请给出一些建议,它是否可行

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

设置数据后,在UITableView的委托中

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
        }
    }

你不能通过节和行来实现这一点吗?行总是在节之后开始。就我而言,该部分的背景正在扩大。例如,查看“品牌”和“学习技能”标题视图UI之间的区别。那么,在这种情况下,我将如何将表格置于表格内部?在这种情况下,如何定义表格视图的高度?外部还是内部?你有两个数据集是的,我理解你的问题。我只是为您的tableView创建了一个示例模型来进行调整。好的,我已经更新了更多的细节。这是正确的,但在我的情况下,用户界面是唯一的问题。看一看问题中的图像,打开时标题视图id不同。它包含所有类似分组的行,这与实现简单的展开和折叠完全不同。因此,您的问题是每个部分的边界或会话头的UI。您是指节的+或-图标?边框。查看
学习技能
。标题视图的行为类似于所有行的父视图。好的,我明白了,很抱歉误解。在本例中,如果learning skill实际上是一个标题,我认为您需要在该标题内创建一个tableview。如果学习技能的行为不像标题(始终位于顶部),则看起来该单元格包含一个迷你表视图
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
        }
    }