2011-08-24 108 views
1

我有一個UIView和一個UIWebView。iphone - 觸摸(點按)事件的順序

UIWebView是UIView的子視圖。

UIWebView包含一個YouTube視頻,並設置爲讓視頻適合UIWebView。

我有單水龍頭,說家長的UIView相關的UITapGesture,如果用戶單一的水龍頭整體來看,它會調用A.

所以,當一個UIWebView加載YouTube視頻,有一個等待用戶點擊播放的視頻頂部的按鈕。但是現在,如果我點擊按鈕,YouTube會播放,而且A也會被調用。這是我不想要的。

我該如何解決?

我認爲觸摸/點擊事件應該是一個順序,如果按鈕被點擊,它應該吸收事件,而不是給UIView更多。

我也嘗試在UIWebView下添加另一個UIView,並將該手勢附加到底層視圖。但是,它仍然不起作用。

我該怎麼做才能讓按鈕通過YouTube視頻獨立?

感謝

回答

1

嘗試在你的視圖的.m文件添加以下代碼(如果你使用的UIView,它的子類):

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
    CGPoint p = [self convertPoint:point toView:webView]; 
    if ([webView pointInside:p withEvent:event]) { 
     return [webView hitTest:p withEvent:event]; 
    } 
    return [super hitTest:point withEvent:event]; 
} 

由於我沒有嘗試這個代碼,告訴我,如果它不沒有工作。處理這種情況的方法仍然很多。 :)

+0

可以請告訴我另一種方式,而不是子類視圖? –

+0

對子視圖進行分類並不困難... –

+0

@JacksonTale由於您使用的是UITapGesture,因此您還可以獲取用戶點擊屏幕的位置,檢查點是否位於UIWebView中,如果答案爲YES,您可以返回您的點擊事件功能來停止進一步的操作。 – xuzhe