如何在un甚至UIPickerView中选择行

时间:2011-03-30 18:06:48

标签: iphone uipickerview

我有一个UIPickerView,它有两个组件。组件1中的行数取决于组件0.我正在尝试以下操作:

// [picker reloadAllComponents];
[picker selectRow:5 inComponent:0 animated:NO];
[picker reloadComponent:1]; // [picker reloadAllComponents];
[picker selectRow:3 inComponent:1 animated:NO];
// [picker reloadAllComponents];

组件0设置为索引5,组件1显示信息,就像在组件0中选择了索引0一样!

1 个答案:

答案 0 :(得分:0)

我尝试了完全相同的东西,它完美无缺。这是一些相关的代码:

此代码仅在您手动选择行时才相关:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if (component == 0) {
        [pickerView reloadComponent:1];
    }
}

我添加了一个按钮,可以在点击时执行您的代码。

- (void)buttonAction:(id)sender {
    [pickerView selectRow:3 inComponent:0 animated:NO];
    [pickerView reloadComponent:1];
    [pickerView selectRow:1 inComponent:1 animated:NO];
}

这是我拥有的最后一段相关代码:

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    switch (component) {
        case 0:
            return 5;
            break;
        case 1:
            return [pickerView selectedRowInComponent:0];
            break;
        default:
            break;
    }
    return 5;
}

一切都按预期工作,因此您发布的行不是导致问题的行。如果您在阅读完我的代码(经过测试和工作)后无法弄明白,我建议您发布更多代码。