A view that uses a spinning-wheel or slot-machine metaphor to show one or more sets of values.


The user interface provided by a picker view consists of components and rows. A component is a wheel, which has a series of items (rows) at indexed locations on the wheel. Each component also has an indexed location (left to right) in a picker view. Each row on a component has content, which is either a string or a view object such as a label (UILabel) or an image (UIImageView). Users select values by rotating the wheels so that the desired row of values aligns with a selection indicator.

Note that the UIDatePicker class uses a custom subclass of UIPickerView to display dates and times. To see an example, tap the add (“+”) button in the Alarm pane of the Clock app.


Getting the Dimensions of the View Picker

var numberOfComponents: Int

Gets the number of components for the picker view.

func numberOfRows(inComponent: Int)

Returns the number of rows for a component.

func rowSize(forComponent: Int)

Returns the size of a row for a component.

Reloading the View Picker

func reloadAllComponents()

Reloads all components of the picker view.

func reloadComponent(Int)

Reloads a particular component of the picker view.

Selecting Rows in the View Picker

func selectRow(Int, inComponent: Int, animated: Bool)

Selects a row in a specified component of the picker view.

func selectedRow(inComponent: Int)

Returns the index of the selected row in a given component.

Returning the View for a Row and Component

func view(forRow: Int, forComponent: Int)

Returns the view used by the picker view for a given row and component.

Specifying the Delegate

var delegate: UIPickerViewDelegate?

The delegate for the picker view.

Specifying the Data Source

var dataSource: UIPickerViewDataSource?

The data source for the picker view.

Managing the Appearance of the Picker View

var showsSelectionIndicator: Bool

A Boolean value that determines whether the selection indicator is displayed.