UIPickerView

UIPickerView是一个选择器控件。它既可以生成单列选择器,也可以生成多列选择器,比如地址选择器就是如此。

1.UIPickerViewDataSource数据源协议
UIPickerView中展示的数据项都是通过其数据源对象来实现的,UIPickerView的数据源对象需要遵守UIPickerViewDataSource数据源协议。
在UIPickerViewDataSource数据源协议中定义了以下两个方法,这两个方法都是强制必须要实现的。
// 设置UIPickerView中所包含的列数,在UIPickerView中列被称为Component。
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
// 设置UIPickerView中每个列Component所包含的行数,该方法中的参数component可以获取当前设置的列序号。
-(NSInteger)pickerView:(UIPickerView ()pickerView numberOfRowsInComponent:(NSInteger)component;
2.UIPickerViewDelegate代理协议
在UIPickerViewDataSource数据源协议中,仅仅提供了UIPickerView包含了几列以及每一列的行数,而每一行展示的选项是通过UIPickerViewDelegate代理协议中的方法进行设置的。
-(nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSinteger)component;
// 为了获取用户当前选中的选项,在UIPickerViewDelegate中也提供了对应的方法,可以使用户获取到当前的选中项
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSinteger)component;
// 设置列宽
-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
// 设置行宽
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;
// 为指定行设置定制外观
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullable UIView *)view;
3.基本属性和方法介绍
由于UIPickerView继承自UIView,因此UIPickerView的外观属性的定制可以使用UIView中的一些属性或方法。
另外,在UIPickerView类中还提供了一些特殊的属性以及方法,需要重点关注。
// 设置UIPickerView对象的数据源对象以及代理对象。
@property(nullable, nonatomic, weak) id<UIPickerViewDataSource> dataSource;
@property(nullable, nonatomic, weak) id<UIPickerViewDelegate> delegate;
// 重新加载列
-(void)reloadAllComponents;
-(void)reloadComponent:(NSInteger)component;
// 获取当前选中的选项序号。
-(NSInteger)selectedRoeInComponent:(NSInteger)component;

2 UIPickerView的基本使用

 

3 相互依赖的多列选择器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值