В чем разница между UIControlEventTouchDragOutside и UIControlEventTouchDragExit? - PullRequest
2 голосов
/ 20 августа 2009

Оба эффекта имеют одинаковый эффект. Они приходят, когда палец достаточно далеко от контроля. «Границы» на самом деле не являются критериями UIControlEventTouchDragExit. Его увольняют, только если достаточно далеко ...

Ответы [ 2 ]

12 голосов
/ 27 сентября 2012

Я пришел сюда в поисках того же, и ответ от eOgas не показался точным. Я сделал свой тестовый пример, и вот мои результаты для тех, кто хочет получить подробный ответ без необходимости тестировать его для себя:

UIControlEventTouchDragExit

  • вызывается только один раз, когда пользователь покидает элемент управления, который он нажал. Как только пользователь преодолевает «магическую границу» * вне UIButton (например), это событие вызывается один раз. Если, продолжая перетаскивать, пользователь перетаскивает обратно в элемент управления и снова выходит, это событие вызывается еще раз. Обратное может применяться к UIControlEventTouchDragEnter .

UIControlEventTouchDragOutside

  • вызывается после UIControlEventTouchDragExit и вызывается повторно каждый раз, когда пользователь перетаскивает палец, все еще удерживая исходное касание, которое использовалось для входа в элемент управления. Для тех, кто знаком с методом touchesMoved в UIView, он работает аналогично. Обратное может применяться к UIControlEventTouchDragInside , однако, это может быть вызвано без необходимости сначала покидать элемент управления.

Чтобы лучше понять или запомнить, вы можете сравнить эти события с человеком, покидающим (и заходящим) в свой дом, в котором они только выходят из дома один раз, но затем продолжают двигаться снаружи несколько раз. Кроме того, человек только входит в свой дом один раз, но затем переходит внутрь несколько раз.

* дополнительное пространство вокруг объекта UIControl, которое учитывает вероятность неточных прикосновений пользователя.

6 голосов
/ 20 августа 2009

UIControlEventTouchDragOutside Событие, когда палец перетаскивается за пределы элемента управления.

UIControlEventTouchDragExit Событие, когда палец перетаскивается из элемента управления за его пределы.

Звучит так, как будто UIControlEventTouchDragOutside запускается, когда пользователь касается только за пределами границ, независимо от того, был ли когда-либо палец в пределах границ. UIControlEventTouchDragExit запускается только тогда, когда палец перетаскивается из-за пределов за пределы.

Таким образом, UIControlEventTouchDragOutside будет использоваться при изменении размера элемента управления (касание края, затем перетаскивание), тогда как UIControlEventTouchDragExit будет использоваться для перемещения элемента управления (касание внутри и перетаскивание).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...