Customizable wheel picker view implementation for iOS. A simple yet customizable horizontal and vertical picker view.

Programming language: Swift
License: MIT License
Tags: Animation     Swift     UI     Menu     Switch     Table View / Collection View    
Latest version: v1.0.1

WheelPicker alternatives and similar libraries

Based on the "Table View / Collection View" category.
Alternatively, view WheelPicker alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of WheelPicker or a related project?

Add another 'Table View / Collection View' Library



Version Swift 4.2.x


A simple yet customizable horizontal and vertical picker view


  • [x] Vertical or Horizontal picker
  • [x] Image or Text data
  • [x] Configure UILabel & UIImageView
  • [x] Flat & 3D style
  • [x] Custom mask
  • [x] 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
picker.style = .style3D
picker.isMaskDisabled = false
picker.scrollDirection = .vertical

picker.textColor = UIColor.blue.withAlphaComponent(0.5)
picker.highlightedTextColor = UIColor.blue
  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 = UIColor.black.withAlphaComponent(0.5)
   label.highlightedTextColor = UIColor.black
   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 swift 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 'https://github.com/CocoaPods/Specs.git'
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.

*Note that all licence references and agreements mentioned in the WheelPicker README section above are relevant to that project's source code only.