欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

UI基本控件(五):UIPikerView

程序员文章站 2022-04-14 11:14:12
UIPickerView是使用旋转轮或类似*来显示一组或多组值的视图。时钟应用中设置时间就是通过UIPickerView来实现的。 1.numberOfComponents:返回UIPickerView当前的列数NSIntegernum = _pickerView.numberOfComponents;NSLog( @"%d", num);2.- (NSInteger)numberOfRowsInComponent:(NSInteger)component;返......

UIPickerView 是使用旋转轮或类似*来显示一组或多组值的视图。

时钟 应用中设置时间就是通过 UIPickerView 来实现的。

UI基本控件(五):UIPikerView    UI基本控件(五):UIPikerView

1.numberOfComponents返回UIPickerView当前的

NSInteger num = _pickerView.numberOfComponents;
NSLog( @"%d", num);

2. - (NSInteger)numberOfRowsInComponent:(NSInteger)component; 返回component列中有多少行。

NSInteger numInCp = [_pickerView numberOfRowsInComponent:0];
NSLog(@"%d",numInCp);

3. -  (CGSize)rowSizeForComponent:(NSInteger)component; 返回component中一行的尺寸。

CGSize size = [_pickerView rowSizeForComponent:0];
NSLog(@"%@", NSStringFromCGSize(size));

UI基本控件(五):UIPikerView

2.delegate

2.0 设置UIPickerView代理

_pickerView.delegate = self;

2.1 设置UIPickView每行显示的内容

- (NSString *)pickerView:(UIPickerView *)pickerView 
             titleForRow:(NSInteger)row 
            forComponent:(NSInteger)component{
    return @"showData";
}

UI基本控件(五):UIPikerView

 

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

// 返回一个视图,用来设置pickerView的每行显示的内容。

-(UIView *)pickerView:(UIPickerView *)pickerView 
           viewForRow:(NSInteger)row 
         forComponent:(NSInteger)component 
          reusingView:(UIView *)view{
    UIView *myView=[[UIView alloc]init];
    myView.backgroundColor = [UIColor redColor];
    return myView;
}

效果:

UI基本控件(五):UIPikerView

 

3.dataSource数据源

#pragma mark  - dataSource method

// 设置每列显示3行

- (NSInteger)pickerView:(UIPickerView *)pickerView 
numberOfRowsInComponent:(NSInteger)component{
    return 3;
}

// 设置显示2

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 2;
}

4. showsSelectionIndicator是否显示指示器,默认为NO  

_pickerView.showsSelectionIndicator = NO;

UI基本控件(五):UIPikerView

 

注意:设置UIPickerView的行数与列数需要设置数据源,遵守UIPickerViewDataSource,设置UIPickerView的内容需要设置代理,并且遵守代理方法UIPickerViewDelegate

5.当点击UIPickerView的某一列中某一行的时候,就会调用这个方法。

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

6. 返回第component列每一行的高度

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

7.刷新某一列的数据

一旦调用了这个方法,就会重新给数据源发送消息计算这列的行数、重新给代理发送消息获得这列的内容

[pickerView reloadComponent:1];

8. 刷新所有列的数据 

- (void)reloadAllComponents;

9. 返回选中的是第component列的第几行。

- (NSInteger)selectedRowInComponent:(NSInteger)component;   

参考:https://www.jianshu.com/p/86b2478abdd5?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

本文地址:https://blog.csdn.net/qq_41431406/article/details/108979498

相关标签: ios小白