Расширение компонента PickerViews при касании - PullRequest
0 голосов
/ 18 мая 2010

У меня есть 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 Ответ

1 голос
/ 19 мая 2010

Чтобы сделать это, даже если ваши параметры выбора - весь текст, вам придется использовать

pickerView:viewForRow:forComponent:reusingView:

В основном вам нужно будет сгенерировать массив UIViews для ваших опций выбора и сохранить их в массиве. Затем, когда выделена строка, разверните этот UIView напрямую и выполните итерацию по массиву, соответственно сокращая остальные.

...