PickView选中某一行的字体变化

来源:互联网 发布:域名抢注服务 编辑:程序博客网 时间:2024/06/06 17:26

要求是选中某一行的时候字体变化,代码如下

.h<UIPickerViewDataSource,UIPickerViewDelegate>

@property (assign,nonatomic)NSInteger selectedRow;

.m

-(void)viewDidLoad{   [super viewDidLoad];  self.timeArray = [[NSArray alloc]initWithObjects:@"0",@"2",@"4",@"6",@"8",@"10",@"12", nil];   self.selectedRow = -1; }



-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{    return [self.timeArray count];}


-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{    NSString *timeString = self.timeArray[row];}
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{        UILabel* pickerLabel = (UILabel*)view;    if (!pickerLabel)    {        pickerLabel = [[UILabelalloc]init];        pickerLabel.minimumScaleFactor =0.5;        pickerLabel.adjustsFontSizeToFitWidth =YES;        [pickerLabel setTextAlignment:NSTextAlignmentCenter];        [pickerLabel setBackgroundColor:[UIColorclearColor]];                   }        if (row ==self.selectedRow) {        NSString *selectString = [self.timeArrayobjectAtIndex:self.selectedRow];        NSDictionary *attributeDict =@{NSForegroundColorAttributeName : [UIColororangeColor]};        NSMutableAttributedString *attributedString = [[NSMutableAttributedStringalloc]initWithString:selectStringattributes:attributeDict];        NSRange stringRange = {0,[attributedStringlength]};        [attributedStringaddAttribute:NSUnderlineStyleAttributeNamevalue:[NSNumbernumberWithInteger:NSUnderlineStyleSingle]range:stringRange];        pickerLabel.attributedText = attributedString;            }else{        pickerLabel.text=[selfpickerView:pickerViewtitleForRow:rowforComponent:component];    }        return pickerLabel;} 

return timeString; }

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{    //获取对应列,对应行的数据    self.pickTimeString=self.timeArray[row];    self.selectedRow = row;   [self.picker selectRow:self.selectedRow inComponent:0 animated:YES];    [self.picker reloadComponent:0]; }

-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{   return 30;}


-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{   return 30;}

实现效果:


1 0
原创粉丝点击