Я реализовал обработчик касания и удержания, используя NSTimer, который я сначала установил в перегрузке TouchesBegan.
Однако на самом деле я хочу, чтобы действие непрерывно выполнялось в быстрой последовательности, пока удерживается касание. Итак, по истечении таймера я вызываю обработчик для выполнения работы, который затем устанавливает другой таймер, и цикл продолжается до тех пор, пока не придет TouchesEnded и не отменит его, или не будет выполнено другое условие завершения.
Это работает нормально, пока мой код обработчика не запускает анимацию одновременно. Теперь у нас есть события анимации и события таймера, а также все, что нам нужно для обработки TouchesEnded.
Я обнаружил, что если анимация запускается и я устанавливаю таймер менее чем на 0,025 секунды, мое событие TouchesEnded не происходит до тех пор, пока цикл таймера не остановится (другое условие завершения). Установите более медленный таймер или не запускайте анимацию, чтобы она работала (TouchedEnded появляется сразу), но это не то, что мне нужно.
Очевидно это все на устройстве (релизная сборка - без NSLogs) - в симе все работает нормально
Есть ли способ установить относительный приоритет этих событий - или, вероятно, я упускаю здесь что-то еще очевидное?
[Update]
В этом случае я обошел это, выполняя непрерывную часть без визуальной обратной связи, пока она не будет сделана (что с точки зрения пользователей происходит мгновенно). Я думаю, что это нормально на данный момент. Я все еще хотел бы услышать какие-либо мысли по этому поводу (идея Джеффри была хороша), но я не жду на иголках сейчас.