我一直在寻找解决方案几个小时。虽然我可以找到类似的问题,但我没有得到答案。请帮我解决一下这个。情况就是这样。
我正在开发一个iPad应用程序。我在UIScrollView B中有一个自定义UIControl(UIControl的子类)对象C,它位于根视图A中。所以父子关系是这样的:A - > B - > C.我想要做的是将我的自定义UIControl C拖到根视图A.这就是我做的。
因为C是UIControl,我向其注册了 UIControlEventTouchDown 和 UIControlEventTouchDragInside 事件以跟踪手指移动。但是,注册的方法只在C的框架内触发。当我的手指接触到框架内部时,它会起作用。当我将它拖到C的框架外面到B然后A,我丢失了手指移动事件。我想知道这样做的正确方法是什么。
答案 0 :(得分:1)
UIControlEventTouchDragInside只会在View的边界内发现拖动事件。您还需要向C视图添加UIControlEventTouchDragOutside,或者您可以收到所有触摸的通知,并找出触摸在X,Y上的位置,并查看触摸的坐标是否在C视图内,然后执行某些操作当触摸结束时和触摸期间拖动它。