BSSelectableView 2.1

BSSelectableView 2.1

测试已测试
语言语言 SwiftSwift
许可 MIT
发布时间最新发布2017年12月
SwiftSwift版本3.0
SPM支持SPM

kunass2维护。



  • Bartłomiej Semańczyk

SelectableView

安装

SelectableView通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中

pod "SelectableView"

如果在您的Podfile中使用了use_framework,只需这样做

import SelectableView

当需要使用它时,对每个文件都要执行。

您还可以使用

@import SelectableView;

在强类型bridging header文件中,以避免为每个需要的文件导入框架。

信息

  • 完全使用最新的Swift语法编写。

用法

只需将SingleSelectableViewMultiSelectableViewSearchSelectableView作为您UIView的子类添加到Interface Builder中。

连接以下@IBOutlets

@IBOutlet open var switchButton: UIButton?
@IBOutlet open var contentOptionsHeightConstraint: NSLayoutConstraint?
@IBOutlet open var contentOptionsView: UIView?
@IBOutlet open var selectedOptionLabel: UILabel? //only SingleSelectableView
@IBOutlet open var verticalTokenView: VerticalTokenView? //only MultiSelectableView
@IBOutlet open var horizontalTokenView: HorizontalTokenView?  //only MultiSelectableView
@IBOutlet open var tokenViewHeightConstraint: NSLayoutConstraint? //only MultiSelectableView, useful within UIScrollView
@IBOutlet open var textField: UITextField! //only SearchSelectableView

在选择视图的viewDidLoad()中分配委托

singleSelectableView.delegate = self
multiSelectableView.delegate = self
searchSelectableView.delegate = self

使您的UIViewController遵守以下声明的SelectableViewDelegate

@objc public protocol SelectableViewDelegate {

    @objc optional func multiSelectableView(_ view: MultiSelectableView, tokenViewFor option: SelectableOption) -> UIView

    @objc optional func singleSelectableView(_ view: SingleSelectableView, didSelect option: SelectableOption)
    @objc optional func multiSelectableView(_ view: MultiSelectableView, didSelect option: SelectableOption)
    @objc optional func searchSelectableView(_ view: SearchSelectableView, didSelect option: SelectableOption)
    @objc optional func selectableViewDidToggleOptions(with button: UIButton, expanded: Bool)
}

此外,在Interface Builder中,您可以为每个SelectableView设置以下属性

    var fontForOption = UIFont.systemFont(ofSize: 16)
    var fontForPlaceholderText = UIFont.systemFont(ofSize: 14)

    @IBInspectable open var leftPaddingForPlaceholderText = 0
    @IBInspectable open var leftPaddingForOption = 20
    @IBInspectable open var heightForOption = 40

    @IBInspectable open var titleColorForSelectedOption = UIColor.green
    @IBInspectable open var titleColorForOption = UIColor.black
    @IBInspectable open var textColorForPlaceholderText = UIColor.gray
    @IBInspectable open var tintColorForSelectedOption = UIColor.blue

    @IBInspectable open var identifier = ""
    @IBInspectable open var tableViewAccessibilityIdentifier = ""
    @IBInspectable open var maxNumberOfRows = 6
    @IBInspectable open var placeholder = ""

如果需要,您可以调用公共实例方法

open func hideOptions() //collapse selectable options
open func select(option: SelectableOption) //only MultiSelectableView
open func deselect(option: SelectableOption) //only MultiSelectableView

您可以使用以下属性

open var options: [SelectableOption]? //current list of options able to select it
open var selectedOption: SelectableOption? //SingleSelectableView, SearchSelectableView
open var selectedOptions = [SelectableOption]() //MultiSelectableView

SelectableOption定义如下

open class SelectableOption: NSObject {

    open var index: Int
    open var identifier: String
    open var title: String
    open var userInfo: [AnyHashable: Any]?

    open var descendantOptions = [SelectableOption]()

    public init(index: Int, title: String, identifier: String, userInfo: [AnyHashable: Any]? = nil) {

        self.index = index
        self.identifier = identifier
        self.title = title
        self.userInfo = userInfo
    }
}

作者

Bartłomiej Semańczyk,[email protected]

许可证

SelectableView 可在 MIT 许可证下使用。更多详细信息请查看 LICENSE 文件。