SelectViewController 1.0.0

SelectViewController 1.0.0

alon22 维护。



  • 作者:
  • ruben

SelectViewController

简单的项目选择控件

安装

CocoaPods

添加到您的 podfile 中,并运行

pod 'SelectViewController'

来安装该框架。

pod install

使用

基本

struct ListItem: Equatable {
    var id: Int?
    var name: String?

    static func == (lhs: Self, rhs: Self) -> Bool {
        lhs.id == rhs.id
    }
}
let selectViewController = SelectViewController<ListItem>()
selectViewController.delegate = self
selectViewController.items = [
    ListItem(id: 1, name: "Test 1"),
    ListItem(id: 2, name: "Test 2"),
    ListItem(id: 3, name: "Test 3"),
    ListItem(id: 4, name: "Test 4"),
    ListItem(id: 5, name: "Test 5")
]
selectViewController.block = { cell, item in
    cell.textLabel?.text = item?.name
    guard let item = item else {
        return
    }
    cell.isSelected = self.selected.contains(item)
}
extension ViewController: SelectViewControllerDelegate {
    func selectViewController(didSelect items: [Any], inType: SelectType) {
        selected = items as! [ListItem]
    }
}

选项

multipleSelection: 允许多选。默认 false

dismissAtSelection: 选择后关闭或弹出。仅当 multipleSelection 等于 false 时。默认 false

closeImage: 用于关闭 UIBarButtonItem 的 UIImage。默认为 iOS 13 或更高版本 barButtonSystemItem: .close,其他为 nil

title: 显示在导航栏中的标题。默认 nil

Multiple SelectViewController

如果在同一个 ViewController 中有多个 SelectViewController,请使用自定义类型来区分选中的项

selectViewController.type = .custom(0)
extension ViewController: SelectViewControllerDelegate {
    func selectViewController(didSelect items: [Any], inType: SelectType) {
        switch inType {
        case .default: break
        case .custom(let value):
            switch value {
            case 0:
                selected = items as! [ListItem]
            default: break
            }
        }
    }
}