我想为具有相同数量元素的不同阵列制作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方法中相反时
答案 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];
}
}
}