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;

 


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"; } // 选中第component第row的时候调用 -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { }

 

posted on 2019-07-23 16:34  夜之独行者  阅读(243)  评论(0编辑  收藏  举报