DropDownTableView 0.8

DropDownTableView 0.8

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最新发布2017年9月
SwiftSwift 版本3.0.2

Sergey Poluyanov 维护。



  • NSSimpleApps, Sergey Poluyanov

已移除对 Swift 2.* 的支持。

>= 0.6 针对 Swift 3

添加到 Podfile 中

pod 'DropDownTableView/Swift' # 对于 Swift 项目 pod 'DropDownTableView/ObjC' # 对于 Objective-C 项目

将以下预处理命令 import DropDownTableView 添加到源文件中。

DropDownTableViewController 继承,并重写 DropDownTableViewDataSourceDropDownTableViewDelegate 的方法。

用法

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)
    }
}

Alt text