ItemPickerView
水平滑动或轻按以选择分段项。
ItemPickerView
是 UIView
子类,它作为一个包含的项的选择器。可以通过轻按或滑动(也可以通过编程方式选择)来选择项,选中的项将被放置在视图的水平中心。通过数据源传递 Item
对象并通过委托处理选择等事件,就像 UICollectionView
或 UITableView
数据源和委托一样。因为它只是一个视图,所以你可以将 ItemPickerView
布局和约束到任何合理的维度,使其具有多功能性和适用于各种场景。
先决条件
Swift 4.2+, iOS 10+, CocoaPods
安装
通过在 Podfile 中添加以下内容使用 CocoaPods 进行安装
pod 'ItemPickerView'
用法
导入框架
import ItemPickerView
创建一个 ItemPickerView
对象
var itemPickerView: ItemPickerView!
override func viewDidLoad() {
super.viewDidLoad()
self.itemPickerView = ItemPickerView()
}
设置 ItemPickerView
属性
override func viewDidLoad() {
// ...
self.itemPickerView.backgroundColor = UIColor.black
self.itemPickerView.gradientColor = UIColor.black
self.itemPickerView.gradientWidth = 75
self.itemPickerView.translatesAutoresizingMaskIntoConstraints = false
}
设置委托和数据源。确保它们遵循 ItemPickerViewDelegate
和 ItemPickerViewDataSource
协议
override func viewDidLoad() {
// ...
self.itemPickerView.delegate = self
self.itemPickerView.dataSource = self
}
布局 ItemPickerView
override func viewDidLoad() {
// ...
self.view.addSubview(self.itemPickerView)
self.itemPickerView.heightAnchor.constraint(equalToConstant: 44).isActive = true
self.itemPickerView.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor, constant: 0).isActive = true
self.itemPickerView.leftAnchor.constraint(equalTo: self.view.leftAnchor, constant: 0).isActive = true
self.itemPickerView.rightAnchor.constraint(equalTo: self.view.rightAnchor, constant: 0).isActive = true
}
设置项
var items: [Item]!
override func viewDidLoad() {
// ...
let item = Item(text: "Item", selectedColor: UIColor.yellow)
let anotherItem = Item(text: "Another Item", font: UIFont.systemFont(ofSize: 14, weight: UIFont.Weight.bold), color: UIColor.cyan.withAlphaComponent(0.7), selectedColor: UIColor.cyan)
let lastItem = Item(text: "Last Item", color: UIColor.orange.withAlphaComponent(0.7), selectedColor: UIColor.orange)
self.items = [item, anotherItem, lastItem]
}
实现数据源函数,并处理委托函数(可选)。确保它们符合ItemPickerViewDelegate
和ItemPickerViewDataSource
协议。
// Return number of items
func itemPickerViewNumberOfItems(_ itemPickerView: ItemPickerView) -> Int {
return self.items.count
}
// Return Item at index
func itemPickerView(_ itemPickerView: ItemPickerView, itemAtIndex index: Int) -> Item {
return self.items[index]
}
// Called when item is selected
func itemPickerView(_ itemPickerView: ItemPickerView, didSelectItemAtIndex index: Int) {
// Handle item selection at given index.
}
外观
修改ItemPickerView
和Item
的外观属性
ItemPickerView
ItemPickerView
的外观属性。
渐变宽度 - 左右渐变的宽度,默认为100
,设置为0
以移除渐变
self.itemPickerView.gradientWidth = 100
渐变颜色 - 左右渐变的颜色,默认为UIColor.black
。理想情况下,设置为与self.itemPickerView.backgroundColor
相同的值
self.itemPickerView.gradientColor = UIColor.black
Item
Item
的外观属性,默认为""
文本 - 该项的文本
let item = Item()
item.text = ""
字体 - 该项文本的字体,默认为UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.semibold)
let item = Item()
item.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.semibold)
颜色 - 该项文本的颜色,默认为UIColor.gray
let item = Item()
item.color = UIColor.gray
选中颜色 - 该项的选中颜色,默认为Default UIColor.black
let item = Item()
item.selectedColor = Default UIColor.black
作者
塞奥德·盖劳 - GitHub
许可证
本项目采用MIT许可证。请参阅LICENSE.md。