12.11.4 UIPickerViewDelegate

12.11.4 UIPickerViewDelegate

UIPickerView的委托实例需要满足此协议,并实现其必须提供的方法,以便提供构建UIPickerView所需的数据。这些方法用来提供每个组件中行的高度宽度、行标题和视图内容。此外这个委托还必须为每个组件的行提供内容,可以是字符串或视图。通常,委托实例通过实现其他可选方法来响应选择或取消选择的行为。下面罗列了UIPickerViewDelegate协议中常用到的方法。

1.pickerView(_:rowHeightForComponent:)

当UIPickerView绘制时,提供组件行高度的委托方法。component参数用于表示组件的序号,从左至右依次增大,从零开始。返回一个浮点数表示组件高度。

2.pickerView(_:widthForComponent:)

当UIPickerView绘制时,提供组件宽度的委托方法。component参数用于表示组件的序号,从左至右增大,从零开始。返回一个浮点数表示组件宽度。

3.pickerView(_:titleForRow:forComponent:)

当UIPickerView绘制时,提供组件标题的委托方法。row参数是选项在当前组件中的位置,component参数用于表示组件的序号,从左至右依次增大,从零开始。返回一个字符串用于展示。

4.pickerView(_:attributedTitleForRow:forComponent:)

当UIPickerView绘制时,提供组件标题的委托方法。row参数是选项在当前组件中的位置,component参数用于表示组件的序号,从左至右依次增大,从零开始。返回一个富文本字符串用于展示。如果同时实现了pickerView(_:titleForRow:forComponent:)和pickerView(_:attributedTitleForRow:for Component:)时,优先调用pickerView(_:attributedTitleForRow:forComponent:)。

5.pickerView(_:viewForRow:forComponent:reusing:)

当UIPickerView绘制时,提供组件视图的委托方法。row参数是选项在当前组件中的位置,component参数用于表示组件的序号,从左至右依次增大,从零开始。之前用于在此位置展示的视图因为滑出可视区域而被UIPickerView缓存用于复用,现在又被取出进行展示使用,可以是任意自定义的视图,如文本、图片等。

6.pickerView(_:didSelectRow:inComponent:)

当用户点击组件的某个组件中的某个位置的选项时,被调用的委托方法。row参数是选项在当前组件中的位置,component参数用于表示组件的序号,从左至右依次增大,从零开始。要确定用户选择的值,委托方法可以使用row和component来访问用于构造组件的数组中相应位置的值。