2010-04-04 61 views
3

如果手指從外部拖動到控件的邊界,我想允許調用某個方法。我以爲UIControlEventTouchDragEnter會這樣做,但它似乎並沒有。有誰知道是否有一種方法可以觸發基於輕擊滑入控件的操作?UIControlEventTouchDragEnter似乎不適用於捕捉滑入控件的水龍頭

這是我很努力,但得到了我的-fingerSlidIn沒有電話:

[A按鈕addTarget:自我行動:@selector(fingerSlidIn:withEvent:方法)forControlEvents:UIControlEventTouchDragEnter]。

謝謝!

回答

4

這是設計。屬於連續觸摸的所有事件(從觸摸直到觸摸)都會進入接收到第一次觸摸事件的視圖。所以你將永遠不會收到一個UIControlEventTouchDragEnter,除非用戶將手指從控件上移開並返回。

要做到你想要的,你必須捕捉控件容器視圖上的觸摸,並在觸摸座標輸入控件的框架矩形時手動確定(可能通過針對每次觸摸調用pointInside:withEvent:)。

+0

聽起來沒錯。我必須決定是否要爲我的容器視圖創建子類,或者將一個較大的控件放在其他按鈕下面以便作爲容器控件。 – mahboudz 2010-04-05 21:19:34

+0

這太糟糕了,我不能只是-addTarget我現有的容器UIView ... – mahboudz 2010-04-05 21:21:01

+0

子視圖花了5分鐘,幾乎沒有任何額外的代碼。謝謝! – mahboudz 2010-04-05 22:39:28