Pickers

Pickers are click wheels for the iPhone: large, spinning dials that can host any number of different options. Pickers are used in place of drop-down menus to provide a graphically rich selection interface for the user. Close cousin to a control, the UIPickerView class was designed as a full-blown view class due to its sheer size on the screen. This allows it to be used almost anywhere, including a main view or in conjunction with a preferences table.

Creating a Picker

The UIPickerView class contains a UIPickerTable object, which is derived from the UITable object. Like other tables, the UIPickerTable uses a data binding. Unlike other table classes, the picker's data source isn't specified with the dataSource method. Instead, a delegate is used for receiving data binding requests in addition to picker events. This was likely done to give the UIPickerView class the simplicity of a control. The UIPickerView data binding is small enough that it can be tucked nicely into controlling views, although the picker itself can also be subclassed to create a self-contained picker.

When creating the picker view, use a 200-pixel-high window. Initializing the picker with any other frame sizes will cause the custom size to be ignored. The picker can be placed anywhere on another view, but is generally located at the bottom.

UIPickerView *pickerView = [ [ UIPickerView alloc ]
    initWithFrame: CGRectMake(0, 280, 320, 200)];
[ pickerView setDelegate: self ];

Picking picker properties

To toggle the ...

Get iPhone Open Application Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.