UIPickerView控件的使用
1.首先UIPickerView得遵循
UIPickerViewDelegate,UIPickerViewDatasource
2.实现两个数据源方法
#pragma mark - picker view dataSource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return _names.count;
}
3.实现UIPickerView的delegate方法
#pragma mark - picker view delegate
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
{
if (component == 0) {
return 50;
} else {
return 200;
}
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0) {
return [@(row) stringValue];
} else {
return _names[row];
}
}
- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 1 && row == 0) {
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:_names[row] attributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSStrikethroughStyleAttributeName:@1}];
return attrStr;
}
return nil;
}
若要将内容展现出来
// 非常重要
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if (component == 0) {
_number.text = [@(row) stringValue];
} else {
_name.text = _names[row];
}
}