美文网首页汽车公司可能用到的知识点
修改UIPickerView选中行的文字大小和颜色

修改UIPickerView选中行的文字大小和颜色

作者: 哪有猫不吃鱼 | 来源:发表于2021-11-29 15:23 被阅读0次

    直接粘贴代码

    #import "ViewController.h"

    @interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>

    @property (strong, nonatomic) IBOutlet UIPickerView *pickerView;

    @property(nonatomic,strong)NSMutableArray *hArr;

    @property(nonatomic,strong)NSMutableArray *mArr;

    @end

    @implementation ViewController

    - (void)viewDidLoad {

        [super viewDidLoad];

        NSLog(@"%@",self.hArr);

        NSLog(@"===%@",self.mArr);

        _pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(25, 35, self.view.bounds.size.width-50, 80)];

        _pickerView.backgroundColor = [UIColor clearColor];

        _pickerView.delegate = self;

        _pickerView.dataSource = self;

        _pickerView.delegate = self;

        _pickerView.dataSource = self;

        [self.view addSubview:self.pickerView];

        // Do any additional setup after loading the view.

    }

    #pragma mark pickerviewDelegate

    //返回列数

    -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

    {

        return2;

    }

    //返回每列行数

    -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

    {

        if(component==0) {

            return  24;

        }else{

            return  60;

        }

    }

    // 返回每一行的标题

    -(NSString*)pickerView:(UIPickerView*)pickerViewtitleForRow:(NSInteger)rowforComponent:(NSInteger)component

    {

        if(component ==0)

        {

            returnself.hArr[row];

        }else

        {

            returnself.mArr[row];

        }

    }

    //改变选中那行的字体和颜色

    - (UIView*)pickerView:(UIPickerView*)pickerViewviewForRow:(NSInteger)rowforComponent:(NSInteger)componentreusingView:(UIView*)view{

        if(!view){

            view = [[UIViewalloc]init];

        }

        UILabel *text = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, (self.view.bounds.size.width-50)/3, 20)];

        if(component ==2) {

            NSIntegerselecrDay  = [_pickerViewselectedRowInComponent:component];

            if(selecrDay == row) {

                text.textColor = [UIColor colorWithRed:13/255.f green:152/255.f blue:215/255.f alpha:1];

            }

        }

        text.textAlignment = NSTextAlignmentCenter;

        if(component==0) {

            text.text= [_hArrobjectAtIndex:row];

        }

        if(component==1) {

            text.text= [_mArrobjectAtIndex:row];

        }

        [viewaddSubview:text];

        returnview;

    }

    ///被选择的行

    -(void)pickerView:(UIPickerView*)pickerViewdidSelectRow:(NSInteger)rowinComponent:(NSInteger)component{

        UIView* view =  [pickerViewviewForRow:rowforComponent:component];

        UILabel* label = view.subviews.firstObject;

        label.textColor =[UIColor redColor];

        label.font = [UIFont systemFontOfSize:30.0];

    }

    #pragma mark- 懒加载

    -(NSMutableArray *)mArr{

        if(!_mArr){

            _mArr= [NSMutableArrayarray];

            for(inti  =0; i<60; i++) {

                NSString*Str= [NSStringstringWithFormat:@"%02d",i];

                [_mArraddObject:Str];

            }

        }

        return_mArr;

    }

    -(NSMutableArray *)hArr{

        if(!_hArr){

            _hArr= [NSMutableArrayarray];

            for(inti  =0; i<24; i++) {

                NSString*Str= [NSStringstringWithFormat:@"%02d",i];

                [_hArraddObject:Str];

            }

        }

        return_hArr;

    }

    @end

    主要代码

    //改变选中那行的字体和颜色

    - (UIView*)pickerView:(UIPickerView*)pickerViewviewForRow:(NSInteger)rowforComponent:(NSInteger)componentreusingView:(UIView*)view{

     if(!view){

            view = [[UIViewalloc]init];

        }

    UILabel *text = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, (self.view.bounds.size.width-50)/3, 20)];

     if(component ==2) {

            NSIntegerselecrDay  = [_pickerViewselectedRowInComponent:component];

     if(selecrDay == row) {

                text.textColor = [UIColor colorWithRed:13/255.f green:152/255.f blue:215/255.f alpha:1];

            }

        }

        text.textAlignment = NSTextAlignmentCenter;

     if(component==0) {

            text.text= [_hArrobjectAtIndex:row];

        }

     if(component==1) {

            text.text= [_mArrobjectAtIndex:row];

        }

        [viewaddSubview:text];

     returnview;

    }

    ///被选择的行

    -(void)pickerView:(UIPickerView*)pickerViewdidSelectRow:(NSInteger)rowinComponent:(NSInteger)component{

        UIView* view =  [pickerViewviewForRow:rowforComponent:component];

        UILabel* label = view.subviews.firstObject;

        label.textColor =[UIColor redColor];

        label.font = [UIFont systemFontOfSize:30.0];

    }

    相关文章

      网友评论

        本文标题:修改UIPickerView选中行的文字大小和颜色

        本文链接:https://www.haomeiwen.com/subject/tdllxrtx.html