Так как мой предыдущий комментарий был не очень хорошо принят, я решил придумать простое решение проблемы на случай, если кому-то будет интересно.
Я знаю, что это не самое эффективное решение в мире, но оно работает точно так же.
Я создал два метода: sliderUp и sliderChanged, связанные с TouchUp и ValueChanged, соответственно. Я также создал глобальную переменную int (timesFired, если хотите), в которой изначально было установлено нулевое значение
В методе sliderUp я поместил любой код, который я не возражал дважды запустить. В моем случае я сдвигаю ползунок обратно вниз, если он не находится сверху (например, функция разблокировки слайда). Я также сбрасываю timesFired обратно на ноль после задержки. чтобы позволить для вызова другого метода. так, на всякий случай. (executeSelector: withObject: afterDelay: если вы не знаете, как это сделать)
В методе sliderChanged у меня сначала есть оператор if: if (timesFired <1) {}
(У меня также есть оператор if, чтобы убедиться, что мой слайдер находится на максимуме), а затем включить весь код, который я хочу выполнить только один раз, когда слайдер достигнет максимального значения. чтобы убедиться, что этот код запускается только один раз, я также увеличиваю значение timesFired. </p>
Как только пользователь поднимет палец на timeFired, будет установлен ноль, и весь процесс может начаться заново.
Теперь, как только я смогу понять, как заморозить слайдер после того, как он достигнет вершины, я на самом деле буду рад этому решению. (просто отключит ли это работу?)