Я пришел из macOS / Cocoa & Mouse Events и пытаюсь освоить эти события "Finger" (мое собственное имя)
Мой вопрос:
Когда событие «Finger» происходит на UIView
(давайте назовем MyView
), когда оно отправляется как Gesture
на UIGestureRecognizer
на MyView
, и когда оно отправляется как touchesBegan/touchesMoved/touchesEnded
до MyView
Я искал все возможные запросы, которые только мог придумать, и действительно нашел только несколько достойных источников, но ничего, что бы точно отвечало тому, что я ищу
касания начались, касания закруглены, касания перемещены для перемещения UIView
UIGestureRecognizer vs touchsBegan / touchsMoved / touchsEnded (точность)
Мое лучшее предположение сейчас состоит в том, что разница между touchBegan / touchMoved / touchEnded и распознавателем жестов зависит от скорости пальца?
Поэтому, если вы нажмете и медленно начнете двигаться, базовый UIView
получит touchMoved
события. Если вы быстро нажмете и перетащите, жест будет создан и передан в GestureRecognizer основного UIView
Мое текущее предположение состоит в том, что, когда палец касается, runloop события обнаруживает этот палец и запускает touchesBegan
. Когда вы двигаете пальцем, он срабатывает touchesMoved
.
Однако, если вы двигаетесь достаточно быстро или так, как среда выполнения думает, что вы делаете жест, он вместо этого создает жест и запускает сообщение на UIGestureRecognizer
вместо отправки touchesMoved
В настоящее время я пытаюсь проверить эту гипотезу, но она довольно утомительна, и у меня нет действительно хорошего примера проекта для тестирования, поэтому я решил, что краудсорсинг получит некоторую информацию, если это возможно. Я доложу, если сам это выясню