• 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

  • 相关阅读:
    【校招VIP】“推推”产品项目课程:产品的规划和商业化分析
    前端项目没亮点,校招简历过不了?速来围观(附项目代码讲解)
    【校招VIP】[前端][二本][7分]简历样式符合一线校招要求
    【校招VIP】“推推”产品项目课程:列表模块原型图
    产品项目没亮点,校招过不了,99%的人不知道问题出在了——产品脑图没有细化到具体的功能点
    【校招VIP】“推电影”第一期电影详情模块Java开发文档作业评审2
    【校招VIP】[前端][二本][6分]项目内容描述要更加细致
    PMP9.项目资源管理9.4建设团队
    PMP10.项目沟通管理10.1规划沟通管理
    PMP9.项目资源管理9.2估算活动资源
  • 原文地址:https://www.cnblogs.com/wangguimin/p/4676075.html
Copyright © 2020-2023  润新知