我已经实现了带有可扩展部分的表格视图,即用户选择的部分将具有该特定类别的项目数。对于封闭部分,将有0个项目。
现在出于更好的UI目的,我想实现以下具有可扩展头视图的表视图类型吗?在此图像中,我们可以看到该部分看起来像一个包含带有圆角和边框的项目的组。根据默认的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的委托中
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
}
}