ExpandableTableViewController 2.1

ExpandableTableViewController 2.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2016年12月
SwiftSwift 版本3.0
SPM支持 SPM

Enric Macias Lopez 维护。



  • Enric Macias Lopez

ExpandableTableViewController

描述

Swift 库,易于显示、隐藏和自定义表格单元格作为可展开的项目列表。

alt tag

要求

  • iOS 8.0
  • UIKit

详细说明

可展开表格视图是一个普通的 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 文件以获取更多信息。