Вы не должны добавлять их - они содержат настройки в расчете на пользователя, и другие разработчики не захотят Вашу копию.
После запуска события touchesBegan UIKit ищет позиционное движение касания пальца, которое преобразуется в события touchedMoved, поскольку x / y пальца изменяется до тех пор, пока палец не будет поднят и не будет выполнено touchesEnded событие запускается.
Если палец удерживается в одном месте, событие touchMoved не запускается, пока не произойдет движение.
Я создаю приложение, в котором вам нужно рисовать на основе touchMoved, и это действительно происходит с интервалами, но достаточно быстро, чтобы рисовать плавно. Поскольку это событие скрыто в SDK, вам, возможно, придется провести некоторое тестирование в своем сценарии, чтобы увидеть, насколько быстро он реагирует, в зависимости от других действий или событий, которые могут варьироваться в зависимости от ситуации, в которой он используется. По моему опыту, он находится в пределах нескольких миллисекунд движения, и это примерно с 2-3k другими спрайтами на экране.
Рисование действительно начинается с события touchesBegan, хотя первое размещение задается, затем оно связывается с touhesMoved и заканчивается touchesEnd. Я использую все события для операции перетаскивания, так что, возможно, начальное движение в этом случае будет менее запаздывающим.
Чтобы проверить в своем приложении, вы можете поставить отметку времени для каждого события, если оно критично для вашего дизайна, и проработать некоторые вроде облегчения.
Ждет первого хода. Так ОС отличает перетаскивание от касания. После перетаскивания все новые уведомления touchMoved.
Это также причина, по которой вам следует написать код для выполнения при событии касания.
Я не представляю какого-либо официального ответа, но имеет смысл, что touchesBegan-> touchesMoved имеет большую продолжительность, чем touchesMoved-> touchesMoved. Разработчикам было бы неприятно, если бы каждое касание Began сопровождалось кучей случайных событий касанияMoved. Apple, должно быть, определила (экспериментально) некоторое расстояние, на котором прикосновение становится тормозом. Как только touchMoved начался, больше нет необходимости проводить этот тест, потому что каждая точка до следующего touchUp гарантированно будет touchMoved.
Кажется, это именно то, что вы говорите в своем исходном посте, Rythmic Fistman и Я просто хотел немного уточнить и сказать, что согласен с вашими рассуждениями. Это означает, что если вы вычисляете какую-то «скорость перетаскивания», вам необходимо использовать пройденное расстояние в качестве фактора,