iOS中的UIPickerView(选择器)

UIPickerView  选择器

#import "ViewController.h"

@interface ViewController (){
    NSMutableArray *nameArray;
    NSMutableArray *ageArray;
    UIPickerView *myPickerView;
    
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //新建两个数组,存储滚轮里面的信息
    nameArray = [[NSMutableArray alloc]initWithObjects:@"小明",@"小强",@"小红",@"小刚",@"小亮", nil];
    ageArray = [[NSMutableArray alloc]initWithObjects:@"20", @"25", @"30", @"40", @"30",  nil];
    
    //新建一个滚轮选择器,并设置滚轮的位置和大小
    myPickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-300, self.view.frame.size.width, 300)];
    
    //设置myPickerView的颜色
    myPickerView.backgroundColor = [UIColor yellowColor];
    
    
    
    
    //扩展游戏:可以在myPickerView下面切一个圆形出来
    myPickerView.layer.cornerRadius = 80;
    //让myPickerView可以被切圆角
    myPickerView.layer.masksToBounds = YES;
    
    
    

    //滚轮自带的两个代理
    myPickerView.delegate = self;
    myPickerView.dataSource = self;
    
    [self.view addSubview:myPickerView];
    
    //默认显示的第几列(component)第几行(row),每列都需要自己设置(写一行)
    [myPickerView selectRow:1 inComponent:0 animated:YES];
    [myPickerView selectRow:1 inComponent:1 animated:YES];
    
    
    

    
    
}
//UIPickerView的代理方法,注意一定要在.h文件里面引入代理<UIPickerViewDelegate,UIPickerViewDataSource>


//一共有多少列(必须实现)
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 2;
}

//每列有多少行(必须实现)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    if (component == 0) {
        return nameArray.count;
    }else{
        return ageArray.count;
    }
    
}





//每列的宽度
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
    
    return 100;
    
}
//每行的高度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
    
    return 40;
}


//每列滚轮上显示的内容  !!!注意,此方法与- (UIView *)pickerView:方法冲突,只能用一个
- (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    if (component == 0) {
        return [nameArray objectAtIndex:row];
    }else{
        return [ageArray objectAtIndex:row];
    }
    
}


//个性化字体设置
//- (nullable NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component{
//    
//    
//}


//这个方法可以给滚轮添加一个背景色,也可以赋内容  !!!注意,此方法与- (nullable NSString *)pickerView:方法冲突,只能用一个
//添加view到component上
//- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullable UIView *)view{
//    
//    UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 40)];
//    
//    if (component == 0) {
//        myLabel.backgroundColor = [UIColor redColor];
//        myLabel.text = [nameArray objectAtIndex:row];
//        return myLabel;
//    }else{
//        myLabel.backgroundColor = [UIColor blueColor];
//        myLabel.text = [ageArray objectAtIndex:row];
//        return myLabel;
//    }
//    
//}


//打印每次选择的内容,可以根据选择了哪个滚轮,分别写分支方法了
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
    if (component == 0) {
        NSLog(@"%@", [nameArray objectAtIndex:row]);
    }else{
        NSLog(@"%@", [ageArray objectAtIndex:row]);
    }
    
}


转载于:https://my.oschina.net/LBBB/blog/659588

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值