[英]iPhone: Click view behind transparent UIScrollView
我有一個UIScrollView設置為具有清晰的背景。 scrollview的一部分確實有內容,但部分沒有(因此它顯示了其后的其他視圖)。 我希望能夠點擊UIScrollView和后面的MKMapView,但僅限於UIScrollView的透明部分。
我找到了一些代碼,我很難理解如何工作:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (![self yourMethodThatDeterminesInterestingTouches:touches withEvent:event])
[self.nextResponder touchesBegan:touches withEvent:event];
}
有人可以幫助我解決如何將觸摸事件轉發到另一個視圖背后的視圖嗎? 我可以調用 - (void)touchesBegan:(NSSet *)觸及來自UIViewController的事件:(UIEvent *)事件?
我們所做的是將UIScrollView子類化並實現將責任傳遞給其下的視圖的邏輯,如果觸摸發生在透明區域內。
在我們的例子中,透明區域由Y軸上的contentOffset 120定義,這意味着我們的內容在UIScrollView的開頭下方120點開始,代碼如下所示:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
if (self.contentOffset.y < 0 && point.y < 0.0) {
return NO;
} else {
return YES;
}
}
顯然,這種反應已經過了很長時間,但希望這對尋求解決方案的任何人都有幫助。
基本上,由您來決定您需要將哪些觸摸事件轉發給其他響應者。 如果您只想轉發所有觸摸事件,只需刪除您發布的代碼中的if
語句,以便下一個響應者將收到所有觸摸事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.