Skip to content

Simple single-selection or multiple-selection checklist, based on UITableView

License

Notifications You must be signed in to change notification settings

yonat/SelectionList

Repository files navigation

SelectionList

Simple single-selection or multiple-selection checklist, based on UITableView.

Swift Version Build Status License CocoaPods Compatible
Platform PRs Welcome

    

Usage

let selectionList = SelectionList()
selectionList.items = ["One", "Two", "Three", "Four", "Five"]
selectionList.addTarget(self, action: #selector(selectionChanged), for: .valueChanged)
selectionList.selectedIndex = 3

Multiple Selection

selectionList.allowsMultipleSelection = true
selectionList.selectedIndexes = [0, 1, 4]

Changing Appearance

The following properties can be changed either in Interface Builder or in code:

selectionList.selectionImage = UIImage(named: "v")
selectionList.deselectionImage = UIImage(named: "o")
selectionList.isSelectionMarkTrailing = false // to put checkmark on left side
selectionList.rowHeight = 42.0

You can do additional styling in code:

selectionList.setupCell =  { (cell: UITableViewCell, index: Int) in
    cell.textLabel?.textColor = .gray
}

If you want to remove the cells seperators

selectionList.tableView.separatorStyle = .none

Requirements

  • iOS 9.0+
  • Xcode 9+

Installation

CocoaPods:

pod 'SelectionList'

Legacy versions:

Swift version SelectionList version
4.1 (Xcode 9.4) pod 'SelectionList', '~> 1.2.0'
4.0 pod 'SelectionList', '~> 1.0.2'

Swift Package Manager:

dependencies: [
    .package(url: "https://github.com/yonat/SelectionList", from: "1.4.5")
]

Meta

@yonatsharon

https://github.com/yonat/SelectionList