2010-05-18 78 views
0

我有一个UIPickerView,其中显示可变数目的组件。在其位指示我有这个-pickerView:withForComponent:在触摸时扩展PickerViews组件

- (CGFloat)pickerView:(UIPickerView *)pv widthForComponent:(NSInteger)component { 
    CGFloat f; 
    if (component == 0) { 
     f = 30; 

    } else { 
     if ([componentsData count]>2) { 
      f = 260.0/([componentsData count]-1); 
     } else{ 
      f = 260.0; 
     } 
    } 
    return f; 
} 

如果我叫[pickerView reloadAllComponents]这工作得很好,但我怎么能延长部件的宽度,如果它被触摸(当然收缩所有其他)?

回答

1

要做到这一点,即使你的选择器选项的所有文字,你将不得不使用

pickerView:viewForRow:forComponent:reusingView: 

你基本上需要产生UIViews的数组,你的选择器选项,在留住他们数组。然后,当选中一行时,直接展开该UIView,然后遍历数组,相应地缩小其他数组。