项目介绍:
github地址:https://github.com/xiongxiong/PickerController
PickerController 自定义选择器,支持地址选择,需要使用省市县地址选择的话,只需按照指定格式导入省市县数据即可
觉得好的话,帮忙打个星,谢谢。有问题的话,欢迎邮件讨论。
PickerController
Easy to use UITableViewCell implementing swiping to trigger actions (known from the Mailbox App)
Contents
-
Features
-
Requirements
-
Example
-
Installation
-
Usage
-
Properties
-
Author
-
License
Features
-
[x] Correlational picker support
-
[x] Group picker support
-
[x] Date picker support
Requirements
-
iOS 8.0+ / Mac OS X 10.11+ / tvOS 9.0+
-
Xcode 8.0+
-
Swift 3.0+
Installation
CocoaPods
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
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.
Manually
If you prefer not to use either of the aforementioned dependency managers, you can integrate PickerController into your project manually.
Example
Open the example project, build and run.
Usage
Extension of UIViewController
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) {
...
}
}
Chinese Region Picker
extension UIViewController {
public func showPicker_ChineseRegionalism(title: String, selectedItems: [String], onDone: ClosureDone? = nil, onCancel: ClosureCancel? = nil) {
...
}
}
Use PickerController
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_button2() {
showPicker_ChineseRegionalism(title: "城市", selectedItems: ["江苏", "无锡"], 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"
})
}
Properties
-
height: CGFloat // height of picker in PickerController
-
animationDuration: TimeInterval // animation duration of picker
-
backgroundAlpha: CGFloat // background alpha of PickerController
Author
xiongxiong, ximengwuheng@163.com
License
PickerController is available under the MIT license. See the LICENSE file for more info.