如何实现可收起和展开的Table Section

 我来答
蓝色精灵好号
2017-10-14 · 超过145用户采纳过TA的回答
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:210万
展开全部
第一步. 准备数据
假设我们有如下的数据,它已经按照不同的section进行组织和整理,每个section都是一个Section结构(或对象):
struct Section {
var name: String!
var items: [String]!
var collapsed: Bool!

init(name: String, items: [String], collapsed: Bool = false) {
self.name = name
self.items = items
self.collapsed = collapsed
}
}

var sections = [Section]()

sections = [
Section(name: "Mac", items: ["MacBook", "MacBook Air", "MacBook Pro", "iMac", "Mac Pro", "Mac mini", "Accessories", "OS X El Capitan"]),
Section(name: "iPad", items: ["iPad Pro", "iPad Air 2", "iPad mini 4", "Accessories"]),
Section(name: "iPhone", items: ["iPhone 6s", "iPhone 6", "iPhone SE", "Accessories"])
]

collapsed表示当前的section是否被收起或展开,默认下是false,即展开。
第二步. Section Header
根据苹果 API reference, 我们应该使用UITableViewHeaderFooterView. 让我们创建一个section header的类来继承它,我们把这个section header类起名为CollapsibleTableViewHeader:

class CollapsibleTableViewHeader: UITableViewHeaderFooterView {
let titleLabel = UILabel()
let arrowLabel = UILabel()

override init(reuseIdentifier: String?) {
super.init(reuseIdentifier: reuseIdentifier)

contentView.addSubview(titleLabel)
contentView.addSubview(arrowLabel)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式