UIPickerView 实现多列选择栏

首先要实现以下两个代理:UIPickerViewDelegate、UIPickerViewDatasource

UIPickerViewDelegate中的方法:

– pickerView:rowHeightForComponent:
– pickerView:widthForComponent:
– pickerView:titleForRow:forComponent:
– pickerView:viewForRow:forComponent:reusingView:
– pickerView:didSelectRow:inComponent:


UIPickerViewDatasource中的方法:

– numberOfComponentsInPickerView:
– pickerView:numberOfRowsInComponent:

 

下面是一些儿实例中的代码

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 2;
}

//用于设置pickerView多少列选择栏
- (NSInteger)pickerView:(UIPickerView *)pickerView 
numberOfRowsInComponent:(NSInteger)component{
    if (component == PickerOne) {
        return [array1 count];
    }
    return [array2 count];
}

//设置每一列有多少个行数 


- (NSString *)pickerView:(UIPickerView *)pickerView 
             titleForRow:(NSInteger)row 
            forComponent:(NSInteger)component{
    if (component == PickerOne) {
        return  [self.array1 objectAtIndex:row];
    }
    NSArray * array=[self.dictionary2 allValues];
    array=[array sortedArrayUsingSelector:@selector(compare:)];
    return [self.dictionary2 valueForKey:[array2 objectAtIndex:row]];
}

//设置每列数据 


- (CGFloat)pickerView:(UIPickerView *)pickerView 
    widthForComponent:(NSInteger)component{
    if (component==0) {
        return 120;
    }
    return 200;
}

//设置每列的宽度 


- (void)pickerView:(UIPickerView *)pickerView 
      didSelectRow:(NSInteger)row 
       inComponent:(NSInteger)component{
    if (component==0) {
        self.UMengFeedbackGender=row;
    }
    if (component==1) {
        self.UMengFeedbackAge=row;
    }
    [self showButtonText:[self.dictionary1 valueForKey:[NSString 
                                                        stringWithFormat:@"%d",
                                                        self.UMengFeedbackGender]]
               stringAge:[self.dictionary2 valueForKey:[NSString 
                                                        stringWithFormat:@"%d",
                                                        self.UMengFeedbackAge]]];
}

//设置选中一行后触发的事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值