zoukankan      html  css  js  c++  java
  • iOS.UIKit.11.UIPickerView

    一、案例介绍:点击UIButton,将选中的省市信息显示在UILabel中,如图01,02

    图01图02

    二、案例步骤:

    1、选择Simple View Aplication,取名cq.37.普通选择器,如图03

    图03

    2、Main.storyboard,如图04

    3、provinces_cities.plist

    4、CQ37ViewController.h

    #import <UIKit/UIKit.h>
    
    @interface CQ37ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>
    
    @property (weak,nonatomic) IBOutlet UIPickerView *pickerView;
    
    @property (weak,nonatomic) IBOutlet UILabel *label;
    
    @property (strong,nonatomic) NSDictionary *pickerData;
    @property (strong,nonatomic) NSArray *pickerProvincesData;
    @property (strong,nonatomic) NSArray *pickerCitiesData;
    
    - (IBAction)onclick:(id)sender;
    @end

    5、CQ37ViewController.m

    #import "CQ37ViewController.h"
    
    @interface CQ37ViewController ()
    
    @end
    
    @implementation CQ37ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        NSBundle *mainBundle = [NSBundle mainBundle];
        NSString *plistPath = [mainBundle pathForResource:@"provinces_cities" ofType:@"plist"];
        
        NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
        self.pickerData = dict;
        
        self.pickerProvincesData = [dict allKeys];
        
        NSString *selectedProvince = [self.pickerProvincesData objectAtIndex:0];
        self.pickerCitiesData = [self.pickerData objectForKey:selectedProvince];
        
        self.pickerView.delegate = self;
        self.pickerView.dataSource = self;
    }
    
    - (IBAction)onclick:(id)sender
    {
        NSInteger row1 = [self.pickerView selectedRowInComponent:0];
        NSInteger row2 = [self.pickerView selectedRowInComponent:1];
        
        NSString *selected1 = [self.pickerProvincesData objectAtIndex:row1];
        NSString *selected2 = [self.pickerCitiesData objectAtIndex:row2];
        
        NSString *title = [[NSString alloc] initWithFormat:@"%@,%@",selected1,selected2];
        
        self.label.text = title;
    }
    #pragma mark UIPickerViewDataSource method
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    {
        return 2;
    }
    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
    {
        if (component == 0) {
            return [self.pickerProvincesData count];
        }else{
            return [self.pickerCitiesData count];
        }
    }
    #pragma mark 实现协议UIPickerViewDelegate方法
    -(NSString *)pickerView:(UIPickerView *)pickerView
                titleForRow:(NSInteger)row forComponent:(NSInteger)component {
        if (component == 0) {//选择省份名
            return [self.pickerProvincesData objectAtIndex:row];
        } else {//选择市名
            return [self.pickerCitiesData objectAtIndex:row];
        }
    }
    
    - (void)pickerView:(UIPickerView *)pickerView
          didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
        if (component == 0) {
            NSString *seletedProvince = [self.pickerProvincesData objectAtIndex:row];
            NSArray *array = [self.pickerData objectForKey:seletedProvince];
            self.pickerCitiesData = array;
            [self.pickerView reloadComponent:1];
        }
    }
    @end
  • 相关阅读:
    Junit单元测试
    win7的6个网络命令
    WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS
    WOJ1022 Competition of Programming 贪心 WOJ1023 Division dp
    woj1019 Curriculum Schedule 输入输出 woj1020 Adjacent Difference 排序
    woj1018(HDU4384)KING KONG 循环群
    woj1016 cherry blossom woj1017 Billiard ball 几何
    woj1013 Barcelet 字符串 woj1014 Doraemon's Flashlight 几何
    woj1012 Thingk and Count DP好题
    woj1010 alternate sum 数学 woj1011 Finding Teamates 数学
  • 原文地址:https://www.cnblogs.com/cqchen/p/3765023.html
Copyright © 2011-2022 走看看