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