013-UIPikerView – iOS基本控件系列

/ 0

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));

4.delegate代理

// 设置UIPickerView代理

_pickerView.delegate = self;

// 设置UIPickView每行显示的内容

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

- (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;
    
}

5. dataSource数据源

#pragma mark  - dataSource method

// 设置每列显示3行

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

// 设置显示2列

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

6. showsSelectionIndicator

是否显示指示器,默认为NO

_pickerView.showsSelectionIndicator = NO;

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

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

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

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

- (CGFloat)pickerView:(UIPickerView *)pickerView

rowHeightForComponent:(NSInteger)component;

9.刷新某一列的数据

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

[pickerView reloadComponent:1];

10. 刷新所有列的数据

- (void)reloadAllComponents;

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

- (NSInteger)selectedRowInComponent:(NSInteger)component;