UIPickerView с пользовательским видом и ярлыками без прокрутки - PullRequest
3 голосов
/ 14 октября 2010

Я использую следующий код для добавления метки и представления в UIPickerView.

- (UIView *)pickerView:(UIPickerView *)pickerView
        viewForRow:(NSInteger)row
      forComponent:(NSInteger)component
       reusingView:(UIView *)view {


CustomPickerView *customView = [[CustomPickerView alloc] initWithFrame:CGRectMake(0.0, 0.0, 180, 32)];

CustomPickerLabel *pickerLabelLeft = [[CustomPickerLabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 80, 32)];
[pickerLabelLeft setTextAlignment:UITextAlignmentRight];
pickerLabelLeft.backgroundColor = [UIColor clearColor];
[pickerLabelLeft setText:@"1234"];

[customView addSubview:pickerLabelLeft];

return customView;

}

Причина, по которой я использую представление, заключается в том, что я хочу добавить две метки в это представление и отобразить их в средстве выбора. Классы CustomPickerView и CustomPickerLabel содержат следующий код, каждый:

- (void)didMoveToSuperview { if ([[self superview] respondsToSelector:@selector(setShowSelection:)]) { [[self superview] performSelector:@selector(setShowSelection:) withObject:NO]; } }

приведенный выше код отлично работает для отображения и прокрутки, но когда я нажимаю на метку для прокрутки, он ничего не делает. Если щелкнуть только за пределами метки, как в углах сборщика, колесо поворачивается к выделению, как и должно быть.

Любые предложения будут оценены.

Rod

1 Ответ

5 голосов
/ 14 октября 2010

Установите свойство userInteractionEnabled вашего customView равным NO. Похоже, что если задано значение YES, то пользовательские касания перехвата вида не могут прокручиваться к нажатой строке.

...