IOS_UIPickerView

#import "ViewController.h"

@implementation ViewController

NSArray *category;  //第一列存儲類別
NSArray *name;  //第二列存儲該列別下對應的名稱
NSDictionary *data;
NSString *defaultSel;  //默認選擇的項目

@synthesize pickerView;

- (void)viewDidLoad {
    [super viewDidLoad];
    //初始化數組
    //category = [NSArray arrayWithObjects:@"人",@"動物",@"水果",@"蔬菜",nil];
    name = [NSArray arrayWithObjects:@"狗",@"貓",@"烏龜",@"小雞",nil];
    
    
    
    data = [NSDictionary dictionaryWithObjectsAndKeys:
           [NSArray arrayWithObjects:@"男",@"女",@"老",@"幼",nil],@"人",
            [NSArray arrayWithObjects:@"狗",@"貓",@"烏龜",@"小雞",nil],@"動物",
            [NSArray arrayWithObjects:@"橡膠",@"柿",@"栗子",@"蘋果",nil],@"水果",
            [NSArray arrayWithObjects:@"白菜",@"蘿蔔",@"絲瓜",@"茄子",nil],@"蔬菜",
            nil];
    
    //對key進行排序
    category = [[data allKeys] sortedArrayUsingSelector:@selector(compare:) ];
    
    defaultSel = [category objectAtIndex:0]; //默認選中的項     
    //初始化pickView    


    pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,300, 0,0)];
    
    
   // pickerView.contentMode = UIViewContentModeCenter;
    
    //爲pickerView 設定數據源和代理
    self.pickerView.dataSource = self;
    self.pickerView.delegate = self;
    
    //pickerView.alpha = 0.2;
    [pickerView setContentMode:UIViewContentModeBottom];
    //[pickerView setBackgroundColor:[UIColor redColor]];
    
    //添加到視圖中
    [self.view addSubview:pickerView];
    
    
    
    
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}



//該方法的返回值決定,pickerView 視圖中將有幾列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    
    return 2; //返回1,表示有1列
    
}

//返回值決定,指定component 中包含多少行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    if (component == 0) {
        return category.count;
    }
    return  [[data objectForKey:defaultSel] count];
}

// 返回值,將做爲指定列表和列表項的文本
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    
    if (component == 0) {
        return [category objectAtIndex:row];
    }
    
    return [[data objectForKey:defaultSel] objectAtIndex:row];
    
}


//當選中列表項中指定列時候觸發
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
    
    if (component == 0) {
        defaultSel = [category objectAtIndex:row];
        [self.pickerView reloadComponent:1]; //重新加載第二列的數據
    }
    
    
    
    
    
    /*
    NSArray *tmp = component == 0?category:name;
    NSString *tip = component == 0?@"類別":@"名稱";
    
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"信息" message:[NSString stringWithFormat:@"你選中的是:%@,名稱是:%@",tip,[tmp objectAtIndex:row]] delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
    
    [alertView show];
     
     */
}

//指定pickView列的寬度
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
    if (component ==0) {
        return 90;
    }
    return 200;
}







@end
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息