旋转第一个时,UIPickerView旋转第二个轮子

时间:2014-10-25 10:16:43

标签: ios uipickerview

我想为具有相同数量元素的不同阵列制作2行拾取器并将两个轮子旋转在一起:如果我旋转第一个轮子,第二个轮子旋转它并且相反。你能帮我吗?

我有两个数组,我通过解析数据得到它,就像它一样:

self.streetTypeArray = @[@"street",@"square",@"park",@"alley"];
self.streetNameArray = @[@"Marx",@"Engels",@"Lenin",@"Ordzhonikidze"];

下:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    // returns the number of 'columns' to display.
    return 2;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
   // for both components the same number of rows.
   return [self.streetTypeArray count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    // return array with data to picker components.
    if(component == 0) {
        return [self.streetTypeArray objectAtIndex:row];
    }

    else {
        return [self.streetNameArray objectAtIndex:row];
    }
}

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

所以我不知道如何正确地将第二个组件旋转到同一行,当我旋转第一个组件并且在didSelectRow方法中相反时

1 个答案:

答案 0 :(得分:0)

从我从您的要求中收集到的内容,我想您希望实现 - pickerView:didSelectRow:inComponent委托方法如下:

-(void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if(component == 0) //streetType
    {
        [pickerView selectRow:row inComponent:1 animated:YES];
    }
    else if(component == 1) //streetName
    {
        if(row != [pickerView selectedRowInComponent:0] )
        {
            [pickerView selectRow:[pickerView selectedRowInComponent:0] inComponent:1 animated:YES];
        }
    }   
}