码迷,mamicode.com
首页 > 其他好文 > 详细

UIPickView

时间:2019-07-23 17:07:02      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:code   nsa   刷新   null   ack   integer   name   att   attr   

UIPickView的属性:

  • picker的高度是固定的,如果设置大于216,就是216,如果小于216大于180,就是180;如果小于180大于162,就是162

  • 设置数据源及代理(UIPickerViewDelegate,UIPickerViewDataSource

picker.dataSource=self;
picker.delegate=self;
  • 创建

UIPickerView*picker=[[UIPickerView
alloc]initWithFrame:CGRectMake(0, 50, 180, 300)];
picker.backgroundColor=[UIColor
cyanColor];
[self.view
addSubview:picker];

//
   设置显示选中的指示条,默认为NO
picker.showsSelectionIndicator=YES;

//
   设置数据源及代理
picker.dataSource=self;
picker.delegate=self;

UIPickView的常用方法:

//
刷新整个数据源
-
(void)reloadAllComponents;
//
刷新选中列的数据
-
(void)reloadComponent:(NSInteger)component;


//
(用动画的效果)将指定的行滚动到中心
-
(void)selectRow:(NSInteger)row inComponent:(NSInteger)component
animated:(BOOL)animated;


//
返回选定的行
-
(NSInteger)selectedRowInComponent:(NSInteger)component;


//
加载自定义pickView的行视图
****
-
(nullable UIView *)viewForRow:(NSInteger)row
forComponent:(NSInteger)component;

UIPickView的数据源协议:

  • 必须实现的协议方法:

//
PickerView有多少列
-
(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;


//
PickerView的每一列有多少行
-
(NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component;

UIPickView的代理协议:

//返回picker
有多少个区
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView
*)pickerView
{
return
3;
}


//返回picker
每个区有多少行
-(NSInteger)pickerView:(UIPickerView
*)pickerView numberOfRowsInComponent:(NSInteger)component{
return
 5;
}


//
如果同时实现返回字符串和view的方法,返回UIView的优先级比较高
-
(UIView *)pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row forComponent:(NSInteger)component
reusingView:(nullable UIView *)view __TVOS_PROHIBITED
{
//
返回自定义view
UIView
*v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];

v.backgroundColor
= [UIColor redColor];

return
v;

}


//
NSAttributedString富文本属性:
可以描述文字大小和颜色(此方法不常用)
-
(nullable NSAttributedString *)pickerView:(UIPickerView *)pickerView
attributedTitleForRow:(NSInteger)row
forComponent:(NSInteger)component;


//
返回pickerView的行标题
-
(NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return
@"xxxx";
}


//
选中第componentrow的时候调用
-
(void)pickerView:(UIPickerView *)pickerView
didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
}

UIPickView

标签:code   nsa   刷新   null   ack   integer   name   att   attr   

原文地址:https://www.cnblogs.com/pan5008/p/11232648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!