测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2016年12月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Enric Macias Lopez 维护。
Swift 库,易于显示、隐藏和自定义表格单元格作为可展开的项目列表。
可展开表格视图是一个普通的 UITableView,但在其行下面有子行。如果普通的果盘有节和行,那么可展开表格视图有节、行和子行。
1.使用 ExpandableTableViewController 类和 ExpandableTableViewDelegate 协议实现您的 UITableViewController 类。
class DemoTableViewController: ExpandableTableViewController, ExpandableTableViewDelegate {
...
}
2.在 Storyboard 中,使用 ExpandableTableView 类设置 UITableView 对象。
3.在 Storyboard 中,将 IBOutlet expandableTableView 与当前的 UITableView 对象连接。
4.在 viewDidLoad() 中将 expandableDatasource 和 expandableDelegate 属性设置为 self。
override func viewDidLoad() {
super.viewDidLoad()
self.expandableTableView.expandableDelegate = self
}
5.添加实现 ExpandableTableViewDelegate 必要方法
// Rows
func expandableTableView(expandableTableView: ExpandableTableView, numberOfRowsInSection section: Int) -> Int
func expandableTableView(expandableTableView: ExpandableTableView, cellForRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath) -> UITableViewCell
func expandableTableView(expandableTableView: ExpandableTableView, heightForRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath) -> CGFloat
func expandableTableView(expandableTableView: ExpandableTableView, estimatedHeightForRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath) -> CGFloat
func expandableTableView(expandableTableView: ExpandableTableView, didSelectRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath)
// Subrows
func expandableTableView(expandableTableView: ExpandableTableView, numberOfSubRowsInRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath) -> Int
func expandableTableView(expandableTableView: ExpandableTableView, subCellForRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath) -> UITableViewCell
func expandableTableView(expandableTableView: ExpandableTableView, heightForSubRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath) -> CGFloat
func expandableTableView(expandableTableView: ExpandableTableView, estimatedHeightForSubRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath) -> CGFloat
func expandableTableView(expandableTableView: ExpandableTableView, didSelectSubRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath)
使用 expandableTableView 属性中的“dequeueReusableCellWithIdentifier(identifier:, expandableIndexPath:)”方法从 give ExpandableIndexPath 中 deque 单元格。
func expandableTableView(expandableTableView: ExpandableTableView, cellForRowAtExpandableIndexPath expandableIndexPath: ExpandableIndexPath) -> UITableViewCell
{
let cell = expandableTableView.dequeueReusableCellWithIdentifier("CellIdentifier", forIndexPath: expandableIndexPath)
return cell
}
//////////// * ExpandableTableView Methods * ////////////
// Returns the cell at the ExpandableIndexPath given.
public func cellForRowAtIndexPath(expandableIndexPath: ExpandableIndexPath) -> UITableViewCell?
// Deques a cell a the ExpandableIndexPath given.
public func dequeueReusableCellWithIdentifier(identifier: String, forIndexPath expandableIndexPath: ExpandableIndexPath) -> UITableViewCell
// Shows if the ExpandableIndexPath provided is an expanded cell or not.
public func isCellExpandedAtExpandableIndexPath(expandableIndexPath:ExpandableIndexPath) -> Bool
// Deselects the cell at the ExpandableIndexPath given.
public func deselectRowAtExpandableIndexPath(expandableIndexPath: ExpandableIndexPath, animated: Bool)
//////////// * ExpandableTableViewController Methods * ////////////
// Unexpands all the expanded cells at once.
public func unexpandAllCells()
将以下文件导入您的项目中
ExpandableTableViewController/ExpandableTableViewController/Classes 文件夹
ExpandableTableViewController.swift
ExpandableTableViewDelegate.swift
ArrayExtension.swift
enric.macias.lopez, [email protected]
ExpandableTableViewController 可在 MIT 许可证下获得。请参阅 LICENSE 文件以获取更多信息。