Я пришел сюда в поисках того же, и ответ от eOgas не показался точным. Я сделал свой тестовый пример, и вот мои результаты для тех, кто хочет получить подробный ответ без необходимости тестировать его для себя:
UIControlEventTouchDragExit
- вызывается только один раз, когда пользователь покидает элемент управления, который он нажал. Как только пользователь преодолевает «магическую границу» * вне UIButton (например), это событие вызывается один раз. Если, продолжая перетаскивать, пользователь перетаскивает обратно в элемент управления и снова выходит, это событие вызывается еще раз. Обратное может применяться к UIControlEventTouchDragEnter .
UIControlEventTouchDragOutside
- вызывается после UIControlEventTouchDragExit и вызывается повторно каждый раз, когда пользователь перетаскивает палец, все еще удерживая исходное касание, которое использовалось для входа в элемент управления. Для тех, кто знаком с методом touchesMoved в UIView, он работает аналогично. Обратное может применяться к UIControlEventTouchDragInside , однако, это может быть вызвано без необходимости сначала покидать элемент управления.
Чтобы лучше понять или запомнить, вы можете сравнить эти события с человеком, покидающим (и заходящим) в свой дом, в котором они только выходят из дома один раз, но затем продолжают двигаться снаружи несколько раз. Кроме того, человек только входит в свой дом один раз, но затем переходит внутрь несколько раз.
* дополнительное пространство вокруг объекта UIControl, которое учитывает вероятность неточных прикосновений пользователя.