前言:UIPickerView 是一個選擇器控件, 它可以生成單列的選擇器,也可生成多列的選擇器,而且開發者完全可以自定義選擇項的外觀,因此用法非常靈活。 UIPickerView 直接繼承了 UIView ,沒有繼承 UIControl ,因此,它不能像 UIControl 那樣綁定事件處理方法, UIPickerView 的事件處理由其委托對象完成。
numberOfComponents:獲取UIPickerView指定列中包含的列表項的數量。該屬性是一個只讀屬性。
showsSelectionIndicator:該屬性控制是否顯示UIPickerView中的選中標記(以高亮背景作為選中標記)。
numberOfRowsInComponent:獲取UIPickerView包含的列數量。
rowSizeForComponent:獲取UIPickerView包含的指定列中列表項的大小。該方法返回一個CGSize對象。
selectRow:inComponent:animated::該方法設置選中該UIPickerView中指定列的特定列表項。最后一個參數控制是否使用動畫。
selectedRowInComponent::該方法返回該UIPickerView指定列中被選中的列表項。
viewForRow:forComponent::該方法返回該UIPickerView指定列的列表項所使用的UIView控件。
UIDatePicker控件只是負責該控件的通用行為,而該控件包含多少列,各列包含多少個列表項則由UIPickerViewDataSource對 象負責。開發者必須為UIPickerView設置UIPickerViewDataSource對象,并實現如下兩個方法。
numberOfComponentsInPickerView::該UIPickerView將通過該方法來判斷應該包含多少列。
pickerView:numberOfRowsInComponent::該UIPickerView將通過該方法判斷指定列應該包含多少個列表項。
如果程序需要控制UIPickerView中各列的寬度,以及各列中列表項的大小和外觀,或程序需要為UIPickerView的選中事件提供響應,都需 要為UIPickerView設置UIPickerViewDelegate委托對象,并根據需要實現該委托對象中的如下方法。
pickerView:rowHeightForComponent::該方法返回的CGFloat值將作為該UIPickerView控件中指定列中列表項的高度。
pickerView:widthForComponent::該方法返回的CGFloat值將作為該UIPickerView控件中指定列的寬度。
pickerView:titleForRow:forComponent::該方法返回的NSString值將作為該UIPickerView控件中指定列的列表項的文本標題。
pickerView:viewForRow:forComponent:reusingView::該方法返回的UIView控件將直接作為該UIPickerView控件中指定列的指定列表項。
pickerView:didSelectRow:inComponent::當用戶單擊選中該UIPickerView控件的指定列的指定列表項時將會激發該方法
Interface Builder只支持為UIPickerView設置一個屬性——Shows Selection Indicator,該屬性用于控制是否顯示UIPickerView中的選中標記(以高亮背景作為選中標記)。