zoukankan      html  css  js  c++  java
  • IOS PickerView使用

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        // 1.创建pickerview
        // pickerview有默认的frame
        UIPickerView *pickerView = [[UIPickerView alloc] init];
        pickerView.dataSource = self;
        pickerView.delegate = self;
        [self.view addSubview:pickerView];
        self.pickerView = pickerView;
    }
    
    #pragma mark - UIPickerViewDataSource
    // 告诉系统有多少列
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    {
        return 2;
    }
    // 告诉系统有多少行
    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
    {
        if (0 == component) {
            // 省份列
            return self.provinces.count;
        }else
        {
            // 城市列
            // 获取第0列选中的行
            NSInteger selectIndex = [self.pickerView selectedRowInComponent:0];
            // 1.根据第0列选中的行数获取对应的省
            NJProvince *province = self.provinces[selectIndex];
            // 2.获取对应省份对应的城市
            NSArray *cities = province.cities;
            // 3.返回城市的个数r
            return cities.count;
        }
    }
    #pragma mark - UIPickerViewDelegate
    // 告诉系统每一行显示什么内容
    - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
    {
        NSLog(@"titleForRow");
        
        if (0 == component) {
             // 省份
            // 1.获取对应行对应的省份模型
            NJProvince *province = self.provinces[row];
            // 2.返回省份的名称
            return province.name;
        }else
        {
             // 城市列
            // 0.获取第0列选中的行数
            NSInteger selectIndex = [pickerView selectedRowInComponent:0];
            // 1.获取对应的省份
            NJProvince *province = self.provinces[selectIndex];
            // 2.获取对应的城市
            return province.cities[row];
        }
    }
    
    // 监听pickerView的选中
    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
    {
        // 判断是否修改了第0列(省份列)
        if (0 == component) {
            // 刷新第1列对应的数据
            [pickerView reloadComponent:1];
            // 让第1列滚动到第0行
            [pickerView selectRow:0 inComponent:1 animated:YES];
        }
    }
  • 相关阅读:
    java面试题2
    java面试题
    查询数据库表字段名和字段类型等信息
    安装eclipse
    redis启动
    eclipse离线安装sonarlint插件
    大白菜安装win10系统
    制作window.ios镜像
    大白菜装机系统
    传递中文字符串时,转换编码格式
  • 原文地址:https://www.cnblogs.com/liuwj/p/6502900.html
Copyright © 2011-2022 走看看