A simple yet customizable horizontal picker view.
The Swift port of AKPickerView.
Works on iOS 7 and 8.
###CocoaPods: In your Podfile:
pod "AKPickerView-Swift" And in your *.swift:
import AKPickerView_Swift###Carthage: In your Cartfile:
github "Akkyie/AKPickerView-Swift" And in your *.swift:
import AKPickerView###Manual Install Add AKPickerView.swift into your Xcode project.
- Instantiate and set
delegateanddataSourceas you know,
self.pickerView = AKPickerView(frame: <#frame#>) self.pickerView.delegate = self self.pickerView.dataSource = self- then specify the number of items using
AKPickerViewDataSource,
func numberOfItemsInPickerView(pickerView: AKPickerView) -> Int {}- and contents to be shown. You can use either texts or images:
func pickerView(pickerView: AKPickerView, titleForItem item: Int) -> NSString {} // OR func pickerView(pickerView: AKPickerView, imageForItem item: Int) -> UIImage {}- Using both texts and images are currently not supported. When you implement both,
titleForItemwill be called and the other won't. - You currently cannot specify image sizes; AKPickerView shows the original image in its original size. Resize your images in advance if you need.
- You can change its appearance with properties below:
var font: UIFont var highlightedFont: UIFont var textColor: UIColor var highlightedTextColor: UIColor var interitemSpacing: CGFloat var viewDepth: CGFloat var pickerViewStyle: AKPickerViewStyle- All cells are laid out depending on the largest font, so large differnce between the sizes of *font* and *highlightedFont* is NOT recommended. - viewDepth property affects the perspective distortion. A value near the screen's height or width is recommended. - After all settings, never forget to reload your picker.
self.pickerView.reloadData()- Optional: You can use
AKPickerViewDelegatemethods to observe selection changes:
func pickerView(pickerView: AKPickerView, didSelectItem item: Int) {}Additionally, you can also use UIScrollViewDelegate methods to observe scrolling.
For more detail, see the sample project.
@akkyie http://twitter.com/akkyie
MIT. See LICENSE.

