Используйте следующий метод,
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
// put your logic here.
}
Вышеуказанный метод взят из UIPickerViewDelegate. Если пользователь выбирает какой-либо элемент с помощью средства выбора, этот метод запускается автоматически.
Надеюсь, это поможет вам.
Редактировать :
Я думаю, что вы должны использовать следующий метод для определения - в каком направлении пользователь прокручивает?
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSLog(@"scrolling to row is %@",[NSString stringWithFormat:@"index_%i",row]);
return [NSString stringWithFormat:@"index_%i",row];
}
всякий раз, когда пользователь прокручивает вверх / вниз выше, метод запускается автоматически, что аналогично UITableView
. Помните, UIPickerView
использует UIPickerTableView
, который является частным, поэтому мы не можем обнаружить прокрутку так, как вы хотите.
Позвольте мне объяснить определение направления в окне выбора.
Пример. Видимые строки index_4,index_5,index_6,index_7
. Теперь, если пользователь прокручивает вниз, будет вызываться index_8
. Точно так же, если пользователь выполняет прокрутку до index_3
, будет вызван
.
Надеюсь, этот трюк решит вашу проблему. Даже если дайте мне знать ваши отзывы по этому поводу.