Iphone 其中';UIControlEventTouchDragOutside和UIControlEventTouchDragExit之间的区别是什么?

Iphone 其中';UIControlEventTouchDragOutside和UIControlEventTouchDragExit之间的区别是什么?,iphone,cocoa-touch,uikit,Iphone,Cocoa Touch,Uikit,两者似乎具有完全相同的效果。当手指离控制装置足够远时,它们会同时出现。“边界”实际上不是UIControlEventTouchDragExit的标准。只有在距离足够远时才会被触发…UIControlEventTouchDragOutside 将手指拖动到控件边界之外的事件 UIControlEventTouchDragExit 将手指从控件内拖动到控件边界外的事件 听起来像是当用户触摸边界外时触发UIControlEventTouchDragOutside,而不管手指是否在边界内。UIContr

两者似乎具有完全相同的效果。当手指离控制装置足够远时,它们会同时出现。“边界”实际上不是UIControlEventTouchDragExit的标准。只有在距离足够远时才会被触发…

UIControlEventTouchDragOutside 将手指拖动到控件边界之外的事件


UIControlEventTouchDragExit 将手指从控件内拖动到控件边界外的事件

听起来像是当用户触摸边界外时触发UIControlEventTouchDragOutside,而不管手指是否在边界内。UIControlEventTouchDragExit仅在手指从边界内拖动到边界外时激发


因此,调整控件大小时将使用UIControlEventTouchDragOutside(边缘点击,然后拖动),而UIControlEventTouchDragExit将用于移动控件(点击内部并拖动)。

我来这里寻找同样的东西,而eOgas的答案似乎并不准确。我做了自己的测试用例,以下是我的结果,供那些不需要自己测试就能得到详细答案的人参考:


UIControlEventTouchDragExit

  • 仅在用户离开其按下的控件时调用一次。一旦用户在UIButton(例如)外打破“神奇边界”,此事件将被调用一次。如果在仍然拖动的同时,用户拖动回控件并再次拉出,则会再次调用此事件。反过来可应用于UIControlEventTouchDragEnter

UIControlEventTouchDragOutside

  • UIControlEventTouchDragExit之后调用,并在用户每次拖动手指同时仍按住用于进入控件的原始触摸时重复调用。对于那些熟悉UIView的touchesMoved方法的人来说,它的工作原理类似。相反,可以应用于UIControlEventTouchDragInside,但是这显然可以在不必首先离开控件的情况下被调用
为了更好地理解或记忆,您可以将这些事件与一个人离开(或来到)他们的房子进行比较,在那里他们只离开房子一次,然后继续向外移动。此外,一个人只进入他们的房子一次,然后继续进入他们的房子


*UIControl对象周围的额外空间,考虑到用户可能进行不精确触摸

事实证明并非如此——见沃金布拉德的答案。