• UIPickerView简单选择器的基本使用


    //创建一个类,实现UIPickerView的基本功能

    #import "PickerViewController.h"

    //  遵守 UIPickerViewDataSource,UIPickerViewDelegate协议

    @interface PickerViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>

    //  声明一个简单选择器

    @property (nonatomic,strong) UIPickerView *picker;

    //  picker第一列数据的数据源数组

    @property (nonatomic,strong) NSMutableArray *firstList;

    //  picker第二列数据的数据源数组

    @property (nonatomic,strong) NSMutableArray *secondList;

    //  用于显示简单选择器上选择的内容

    @property (nonatomic,strong) UILabel *showLable;

    //  picker选择完点击按钮用于更新lable上的数据

    @property (nonatomic,strong) UIButton *button;

    //  picker第一列选择的数据

    @property (nonatomic,copy) NSString *firstStr;

    //  picker第二列选择的数据

    @property (nonatomic,copy) NSString *secondStr;

    @end

    @implementation PickerViewController

    //  picker的懒加载,用于picker的初始化和设置

    - (UIPickerView *)picker{

        if (!_picker) {

            self.picker = [[UIPickerView alloc] initWithFrame:CGRectMake(50, 100, self.view.bounds.size.width - 100, 40)];

            _picker.shouldGroupAccessibilityChildren = YES;

            _picker.delegate = self;

            _picker.dataSource = self;

        }

        return _picker;

    }

    - (UIButton *)button{

        if (!_button) {

            self.button = [UIButton buttonWithType:UIButtonTypeCustom];

            _button.frame = CGRectMake(150, 350, self.view.bounds.size.width - 300, 30);

            [_button setTitle:@"确认" forState:UIControlStateNormal];

            [_button addTarget:self action:@selector(handleButtonAction:) forControlEvents:UIControlEventTouchUpInside];

            _button.backgroundColor = [UIColor cyanColor];

        }

        return _button;

    }

    - (void)handleButtonAction:(UIButton *)sender{

        self.showLable.text = [NSString stringWithFormat:@"%@ %@",self.firstStr,self.secondStr];

    }

    //  显示picker的选择数据

    - (UILabel *)showLable{

        if (!_showLable) {

            self.showLable = [[UILabel alloc] initWithFrame:CGRectMake(50, 300, self.view.bounds.size.width - 100, 40)];

            _showLable.backgroundColor = [UIColor yellowColor];

            _showLable.textAlignment = NSTextAlignmentCenter;

            _showLable.text = @"1 1";

        }

        return _showLable;

    }

    //  数据源的设置

    - (NSMutableArray *)firstList{

        if (!_firstList) {

            self.firstList = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil];

        }

        return _firstList;

    }

    - (NSMutableArray *)secondList{

        if (!_secondList) {

            self.secondList = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil];

        }

        return _secondList;

    }

    - (void)viewDidLoad {

        [super viewDidLoad];

        // Do any additional setup after loading the view.

    //  在view上添加控件

        [self.view addSubview:self.picker];

        [self.view addSubview:self.button];

        [self.view addSubview:self.showLable];

    //  给lable上的数据初始化

        self.firstStr = @"1";

        self.secondStr = @"1";

    }

    #pragma mark UIPickerViewDelegate

    //pickerView的列数

    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{

        return 2;

    }

    //返回每一列元素的个数

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

        if (component == 0) {

            return self.firstList.count;

        }

        return self.secondList.count;

    }

    //返回每一列的宽度

    - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{

        return 50;

    }

    //返回每一列中每行的元素

    - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

        if (component == 0) {

            return self.firstList[row];

        } else {

            return self.secondList[row];

        }

    }

    //把数组中对应选择的行的字符串赋值字符串属性用于lable的显示

    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

        if (component == 0) {

            self.firstStr = self.firstList[row];

        } else {

            self.secondStr = self.secondList[row];

        }

    }

    - (void)didReceiveMemoryWarning {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

    /*

    #pragma mark - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

        // Get the new view controller using [segue destinationViewController].

        // Pass the selected object to the new view controller.

    }

    */

    @end

  • 相关阅读:
    C++ Toolkit zz
    开发人员实际在用哪些工具 zz
    Page.RegisterClientScriptBlock和Page.RegisterStartupScript有何区别?
    动态网址与静态网址
    DIV垂直居中 (转)
    JS网页打印设置技巧(
    谈*静态页*(或网页*静态化*)的时候,请区分一些概念(转)
    添加新增 删除旧的 避免id自增过多
    浅谈CSRF攻击方式(转)
    简单的角色权限管理
  • 原文地址:https://www.cnblogs.com/wangguimin/p/4676075.html
Copyright © 2020-2023  润新知