Customizable wheel picker view implementation for iOS.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Example Migrate to Swift 4.2 Sep 17, 2018
_Pods.xcodeproj initial commit Apr 11, 2017
mov1.gif initial commit Apr 11, 2017


Version Swift 4.2.x


A simple yet customizable horizontal and vertical picker view


  • Vertical or Horizontal picker
  • Image or Text data
  • Configure UILabel & UIImageView
  • Flat & 3D style
  • Custom mask
  • Configure fisheye factor

Example Example


  1. Import WheelPicker module to your ViewController class
import WheelPicker
  1. Instantiate and set delegate and dataSource as you know. Configure WheelPicker if need
picker.dataSource = self
picker.delegate = self

2.1. Configure WheelPicker if need

picker.interitemSpacing = 25.0
picker.fisheyeFactor = 0.001 = .style3D
picker.isMaskDisabled = false
picker.scrollDirection = .vertical

picker.textColor =
picker.highlightedTextColor =
  1. then specify the number of items using WheelPicker methods
func numberOfItems(_ wheelPicker: WheelPicker) -> Int
  1. Specify contents to be shown. You can use either texts or images
optional func titleFor(_ wheelPicker: WheelPicker, _ index: Int) -> String
optional func imageFor(_ wheelPicker: WheelPicker, _ index: Int) -> UIImage
func wheelPicker(_ wheelPicker: WheelPicker, configureLabel label: UILabel, at index: Int) {
   label.textColor =
   label.highlightedTextColor =
   label.backgroundColor = UIColor.init(hue: CGFloat(index)/CGFloat(flags.count) , saturation: 1.0, brightness: 1.0, alpha: 1.0)
  • Using both texts and images are currently not supported. When you implement both, titleFor(_ wheelPicker: WheelPicker, at index: Int) will be called and the other won't.
  • You currently cannot specify image sizes; WheelPicker shows the original image in its original size. Resize your images in advance if you need.
  1. Optional: You can use WheelPicker method to observe selection changes
func wheelPicker(_ wheelPicker: WheelPicker, didSelectItemAt index: Int)

Installation with CocoaPods

To install via CocoaPods add this lines to your Podfile. You need CocoaPods v. 1.1.0 or higher

$ gem install cocoapods


To integrate WheelPicker into your Xcode project using CocoaPods, specify it in your Podfile:

source ''
platform :ios, '9.0'

target 'TargetName' do
  pod 'WheelPicker', '~> 1.0'

Then, run the following command:

$ pod install


WheelPicker is available under the MIT license. See the LICENSE file for more info.