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