认识 UIPickerView

// pickerView 的接口

@interface UIPickerView: UIView <NSCoding, UITableViewDataSource>


@property (nonatomic, assign) id<UIPickerViewDataSource> dataSource; // 默认为 nil, 弱引用

@property (nonatomic, assign) id<UIPickerViewDelegate> delegate; // 默认为 nil, 弱引用

@property (nonatomic) BOOL  showsSelectionIndicator; // 默认为 NO


@property (nonatomic, readonly) NSInteger numberOfComponents; 

-(NSInteger) numberOfRowsInComponent:(NSInteger) component; //  返回 某个组成部分的行数


// 返回 由代理实现的方法 pickerView: viewForRow: forComponent: reusingView:

// 如果那一行/部分 不可视 或 上面的代理方法未被实现,则返回 nil

-(UIView *) viewForRow:(NSInteger) row forComponent:(NSInteger) component;


// 重新加载整个视图 或者 某个单一的部分

-(void) reloadAllComponents;

-(void) reloadComponent:(NSInteger) component;


// 选择。 在这种情况下,在pickerView 中间显示合适的行

-(void) selectRow:(NSInteger)row inComponent:(NSInteger) component animated:(BOOL) animated;

// 把特殊的行显示到 pickerView 的中间


-(NSInteger) selectedRowInComponent:(NSInteger) component;

// 返回pickerView 显示在中部的行数 -1 所得数值

@end


//  遵守协议后,必须实现的方法

@protocol UIPickerViewDataSource<NSObject>

@required 

// 返回要显示的 列 数

-(NSInteger) numberOfComponentsInPickerView:(UIPickerView *) pickerView;


// 返回 每个列的行数

-(NSInteger) pickerView:(UIPickerView *) pickerView numberOfRowsInComponent:(NSInteger) component;

@end


// 可选方法 

@protocol UIPickerViewDelegate<NSObject>

@optional

// 为每个 列(component)返回长度  宽度

-(CGFloat) pickerView:(UIPickerView *) pickerView widthForComponent:(NSInteger) component;

-(CGFloat) pickerView:(UIPickerView *) pickerView rowHeightForComponent:(NSInteger) component;


// 一下方法返回一个 普通的 字符串对象 ,一个 NSAttributedString 对象 或是 一个视图(例如 UILabel),来显示该行的组成部分

// 由于视图的版本不同, 我们缓存所有隐藏的和未被使用的视图,传到后面重用

// 如果返回一个不同的对象, 先前的会被释放掉。 视图将被显示在矩形行的中间

-(NSString *) pickerView:(UIPickerView *) pickerView titleForRow:(NSInteger) row forComponent:(NSInteger)component;

-(NSAttributedString *) pickerView:(UIPickerView *) pickerView attributedTitleForRow:(NSInteger) row forComponent:(NSInteger) component NS_AVAILABLE_IOS(6_0); // 如果以上两个方法都被实现,则 attributed title 可用


-(UIView *) pickerView:(UIPickerView *) pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *) view;


-(void) pickerView:(UIPickerView *) pickerView didSelectRow:(NSInteger) row inComponent:(NSInteger) component;


@end

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值