PickerController, can make correlational pick. I love it.
- Correlational picker support
- Group picker support
- Date picker support
- iOS 8.0+ / Mac OS X 10.11+ / tvOS 9.0+
- Xcode 8.0+
- Swift 4.2+
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate PickerController into your Xcode project using CocoaPods, specify it in your Podfile
:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target '<Your Target Name>' do
pod 'PickerController', '~> 0.1.0'
end
Then, run the following command:
$ pod install
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate PickerController into your Xcode project using Carthage, specify it in your Cartfile
:
github "xiongxiong/PickerController" ~> 0.1.0
Run carthage update
to build the framework and drag the built PickerController.framework
and SwiftyJSON.framework
into your Xcode project.
If you prefer not to use either of the aforementioned dependency managers, you can integrate PickerController into your project manually.
Open the example project, build and run.
extension UIViewController {
public func showCorrelationPicker(title:String, correlationalJsonStr: String, selectedItems: [String], onDone: ClosureDone? = nil, onCancel: ClosureCancel? = nil) {
...
}
public func showCorrelationPicker(title:String, correlationalJsonStr: String, selectedIndices: [Int], onDone: ClosureDone? = nil, onCancel: ClosureCancel? = nil) {
...
}
public func showCorrelationPicker(title:String, correlationalJsonFile: String, selectedItems: [String], onDone: ClosureDone? = nil, onCancel: ClosureCancel? = nil) {
...
}
public func showCorrelationPicker(title:String, correlationalJsonFile: String, selectedIndices: [Int], onDone: ClosureDone? = nil, onCancel: ClosureCancel? = nil) {
...
}
public func showGroupPicker(title:String, groupData: [[String]], selectedItems: [String], onDone: ClosureDone? = nil, onCancel: ClosureCancel? = nil) {
...
}
public func showGroupPicker(title:String, groupData: [[String]], selectedIndices: [Int], onDone: ClosureDone? = nil, onCancel: ClosureCancel? = nil) {
...
}
public func showDatePicker(title: String, initialDate: Date, onDone: ClosureDateDone? = nil, onCancel: ClosureCancel? = nil) {
...
}
}
func onClicked_button1() {
let data = [["1983", "1984", "1985"], ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]]
showGroupPicker(title: "Hello", groupData: data, selectedItems: ["1984", "6月"], onDone: { [unowned self] (indices, items) in
self.labelIndices.text = "indices -- \(indices)"
self.labelItems.text = "items -- \(items)"
}, onCancel: {
self.labelIndices.text = "selected nothing"
self.labelItems.text = "selected nothing"
})
}
func onClicked_button3() {
showDatePicker(title: "时间", initialDate: Date(), onDone: { [unowned self] (date) in
self.labelIndices.text = ""
self.labelItems.text = "date -- \(date)"
}, onCancel: {
self.labelIndices.text = ""
self.labelItems.text = "selected nothing"
})
}
- height: CGFloat // height of picker in PickerController
- animationDuration: TimeInterval // animation duration of picker
- backgroundAlpha: CGFloat // background alpha of PickerController
xiongxiong, ximengwuheng@163.com
PickerController is available under the MIT license. See the LICENSE file for more info.