测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可 | MIT |
发布最新发布 | 2017年9月 |
SwiftSwift 版本 | 3.0.2 |
由 Sergey Poluyanov 维护。
已移除对 Swift 2.*
的支持。
>= 0.6
针对 Swift 3
。
添加到 Podfile 中
pod 'DropDownTableView/Swift' # 对于 Swift 项目
pod 'DropDownTableView/ObjC' # 对于 Objective-C 项目
将以下预处理命令 import DropDownTableView
添加到源文件中。
从 DropDownTableViewController
继承,并重写 DropDownTableViewDataSource
和 DropDownTableViewDelegate
的方法。
用法
class TableViewController: DropDownTableViewController {
override func numberOfRows(in tableView: UITableView) -> Int {
return someValue
}
override func tableView(_ tableView: UITableView, numberOfSubrowsInRow row: Int) -> Int {
return someValue
}
override var showSubrowsInRow: Int? {
return someValue
}
override func tableView(_ tableView: UITableView, cellForRow row: Int, indexPath: IndexPath) -> UITableViewCell {
if row == self.nsk_selectedRow {
someCell.accessoryView = UIImageView(image: UIImage(named: "up_arrow"))
} else {
someCell.accessoryView = UIImageView(image: UIImage(named: "down_arrow"))
}
return someCell
}
override func tableView(_ tableView: UITableView, cellForSubrow subrow: Int, inRow row: Int, indexPath: IndexPath) -> UITableViewCell {
return someCell
}
override func tableView(_ tableView: UITableView, didSelectRow row: Int) {
switch (self.nsk_selectedRow, row) {
case (let sr?, _) where row == sr:
tableView.cellForRow(at: row)?.accessoryView = UIImageView(image: UIImage(named: "down_arrow"))
tableView.deselect(row: row, animated: true)
break
case (let sr?, _) where row != sr:
tableView.cellForRow(at: row)?.accessoryView = UIImageView(image: UIImage(named: "up_arrow"))
tableView.cellForRow(at: sr)?.accessoryView = UIImageView(image: UIImage(named: "down_arrow"))
break
case (nil, _):
tableView.cellForRow(at: row)?.accessoryView = UIImageView(image: UIImage(named: "up_arrow"))
break
default:
break
}
super.tableView(tableView, didSelectRow: row)
}
}