依赖UIPickerView

jak*_*ake 4 arrays iphone variables uipickerview

有没有人知道如何制作依赖UIPickerView.例如,当我选择组件1的第2行时,组件2的标题会发生变化吗?

我在互联网上看到没有真正的答案,我尝试过使用if和switch语句,但它们只是崩溃了.

Nit*_*hin 6

这取决于您将如何保存数据.例如,如果您将数组作为字典键的值,并且该字典具有不同的此类键,则第一列将是键,而在选择一列时,您将在另一列中显示该数组(组件) ).- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView方法应该返回2.在 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 方法中,您需要在组件1的字典中给出键的数量,以及当前所选键的数组的计数.例如

if(component==0) return [[DICTIONARY allKeys] count];
else return [[DICTIONARY objectForKey:@"SELECTED_KEY"] count];
Run Code Online (Sandbox Code Playgroud)

然后,

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

    selectedIndex = [pickerView selectedRowInComponent:0];
    if (component == 1 && !(selectedIndex < 0)) {
        [pickerView reloadComponent:2];

        [pickerView selectRow:0 inComponent:2 animated:YES];
    }

}
Run Code Online (Sandbox Code Playgroud)

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {

    UILabel *pickerRow = (view != nil) ? view : [[[UILabel alloc] initWithFrame:CGRectMake(5, 0, 115, 60)] autorelease];
    pickerRow.font = [UIFont boldSystemFontOfSize:14];
    pickerRow.textAlignment = UITextAlignmentLeft;
    pickerRow.backgroundColor = [UIColor clearColor];
    pickerRow.textColor = [UIColor blackColor];
    pickerRow.numberOfLines = 0;
    if (component == 0) {

        pickerRow.text = @"DICTIONARY_ROW'th_KEY";
    }
    else {

        pickerRow.text = [[dictionary objectForKey:@"SELECTED_KEY"] objectAtIndex:row];

    }
    return pickerRow;
}
Run Code Online (Sandbox Code Playgroud)