2011-06-28 83 views
0

我一直在尋找解決方案几個小時。雖然我可以找到類似的問題,但我沒有得到答案。請幫我解決一下這個。這是情況。將視圖的子視圖拖到其父視圖

我正在開發一個iPad應用程序。我在UIScrollView B中有一個自定義的UIControl(UIControl的子類)對象C,它位於根視圖A中。因此,父 - 子關係如下所示:A - > B - > C。我想要做的就是拖動我的自定義UIControl C到根視圖A.這就是我所做的。

因爲C是一個UIControl,我註冊UIControlEventTouchDownUIControlEventTouchDragInside事件它來跟蹤手指的移動。但是,註冊的方法僅在C的框架內觸發。當我的手指觸摸框架內部時,它可以工作。當我把它拖到C的框架之外到B然後A時,我失去了手指移動事件。我想知道做這件事的正確方法是什麼。

回答

1

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Reference/Reference.html

的UIControlEventTouchDragInside只會注意到視圖的邊界內的拖曳事件。您還需要在C視圖中添加UIControlEventTouchDragOutside,或者可以通知所有觸摸,並找出X,Y上的觸摸位置,然後查看觸摸的座標是否位於C視圖內,然後執行某些操作它在觸摸結束時和觸摸時拖動。

+0

酷!對C視圖使用UIControlEventTouchDragOutside。對於第二種方法,我必須重寫根視圖A的hitTest:withEvent:來捕獲觸摸事件。我對麼? – 322896

相關問題