PickView选中某一行的字体变化

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

.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值