Определение прокрутки UIPickerWheel - PullRequest
1 голос
/ 15 марта 2011

Эй, есть ли способ определить, прокручивает ли сейчас UIPickerView, мне действительно нужны эти функции для моего приложения, это действительно важно. Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 мая 2017

Есть способ обнаружить это, но нет метода / свойства делегата, чтобы определить, прокручивается он или нет.

  1. принять свойство как isScrolling
  2. установить isScrolling в truefunc pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? или эквивалентный метод
  3. установите isScrolling в false в func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
0 голосов
/ 15 марта 2011

Существует метод UIPickerViewDelegate, который в основном запускается при каждой прокрутке средства выбора

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

Установите делегат для вашего средства выбора, реализуйте этот метод и посмотрите, что произойдет ...

[РЕДАКТИРОВАТЬ] Хорошо, теперь я понимаю, что вам нужно.Реализуйте таймер, который проверяет состояние средства выбора.

checkTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(checkPicker) userInfo:nil repeats:YES];

в приведенном выше методе делегата сохраните время последнего перемещения средства выбора.

lastPickerDate = [[NSDate date] retain];

в методе checkPicker проверьте, сколько времени прошло с момента последнего перемещения

NSTimeInterval timeSinceMove = -[lastPickerDate timeIntervalSinceNow];

если timeSinceMove больше, чем какое-либо желаемое значение, например, 0,5 секунды, установите для вашего BOOL pickerMoving значение false.иначе установите его в true.Это не самый точный метод проверки движения, но я думаю, что он должен выполнять свою работу ...

...