Интерактивная область UIPickerView для обрезки нажатия в iOS 7

Когда я делаю длинный сборщик с несколькими компонентами, только компоненты рядом с центром реагируют на функцию выбора касанием.

Например, если вы хотите выбрать следующую строку под выбранной строкой, вы должны иметь возможность просто коснуться ее, чтобы оживить ее в области выбора. Эта функция все еще существует в iOS 7, но область в UIPicker, которая фактически принимает нажатие, представляет собой очень маленькое окно, не более 200 пикселей.

Есть ли способ расширить эту доступную для касания область, чтобы включить в нее весь UIPickerView, чтобы каждый раз, когда вы касались строки, она становилась выделенной?

ИЗМЕНИТЬ вот код, он довольно стандартный ...

    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

    NSLog(@"picked %i %i" , component , row);
}


- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 4;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return 15;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    return @"";
}

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

    pickersLabel =[[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, view.frame.size.width , view.frame.size.height )];
    pickersLabel.text = [NSString stringWithFormat:@"thing %i" , row ];


    pickersLabel.backgroundColor = [UIColor clearColor];

    pickersLabel.backgroundColor = [UIColor colorWithRed:1/255.0 green:1/255.0 blue:2/255.0 alpha:0.05];

    pickersLabel.opaque = NO;
    [view addSubview:pickersLabel];
    return pickersLabel;
}

person Patrick    schedule 07.10.2013    source источник
comment
Я думаю, что есть еще одна проблема ... пожалуйста, поместите сюда свой код ..   -  person Dipen Chudasama    schedule 07.10.2013
comment
Дипень, я код добавил. Я также создал совершенно новый проект, просто исключив все переменные. Он по-прежнему позволяет вам коснуться только строки в самом центре UIPickerView. Приведенный выше код взят из этого тестового проекта. Любые предложения будут ценны!   -  person Patrick    schedule 07.10.2013


Ответы (1)


У меня были огромные проблемы с UIPickerViews, которые были в .xibs вместо раскадровок в iOS 7. Я не уверен, происходит ли какая-то оптимизация за кулисами в раскадровке или это явная ошибка, но она того стоит. выстрел - сейчас я использую окно выбора, которое поступает из раскадровки, и я могу нажимать на невыбранные строки, и они прокручиваются вверх и становятся выбранными.

person DesignatedNerd    schedule 30.10.2013