Как UIPickerView справляется с вращением циферблатов 2+? - PullRequest
2 голосов
/ 19 марта 2009

Если у меня есть UIPickerView с тремя компонентами (наборы). Как сборщик управляет двумя циферблатами, вращающимися одновременно? Например, пользователь может щелкнуть первый диск, который вращается свободно и сразу же медленно нажимает на выбор на втором диске.

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

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

if(component == 0){
    dateEndCenturyText = (NSString *)[dateCentury objectAtIndex:row];
}
else if(component == 1){
    dateEndDecadeText = (NSString *)[dateYear objectAtIndex:row];

}
else if(component == 2){
    dateEndYearText = (NSString *)[dateYear objectAtIndex:row];
}

Есть ли лучший способ обеспечить захват значений, даже если вращаются два циферблата?

1 Ответ

2 голосов
/ 19 марта 2009

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

UIPickerView selectedRowInComponent:

Возвращает индекс выбранной строки в данном компоненте

- (NSInteger) selectedRowInComponent: (NSInteger) компонент

Надеюсь, это поможет!

...