代码之家  ›  专栏  ›  技术社区  ›  vikingosegundo

触摸时扩展PickerView组件

  •  0
  • vikingosegundo  · 技术社区  · 15 年前

    我有一个uipickerview,其中显示的组件数量可变。在它的控制器里我有这个 -pickerView:withForComponent:

    - (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 回复  |  直到 15 年前
        1
  •  1
  •   DougW    15 年前

    为此,即使选取器选项都是文本,也必须使用

    pickerView:viewForRow:forComponent:reusingView:
    

    您基本上需要为选择器选项生成一个ui视图数组,并将它们保留在一个数组中。然后,当选中一行时,直接展开该uiview,并遍历数组,相应地收缩其他行。