觸摸

2011-07-04 123 views
0

我定義一個UIView作爲一個覆蓋視圖刪除重疊視圖:觸摸

self.disableViewOverlay = [[UIView alloc] initWithFrame:CGRectMake(0.0f,44.0f,320.0f,416.0f)]; 
self.disableViewOverlay.backgroundColor=[UIColor blackColor]; 
self.disableViewOverlay.alpha = 0; 

現在我想,如果用戶點擊它來關閉重疊視圖...

[disableViewOverlay removeFromSuperview]; 

如何我是否會發現用戶是否在這個覆蓋視圖上點擊?是否有一個「輕敲」的方法就像一個按鈕有一個IBAction?

謝謝!

回答

3

你有兩個選擇:

  1. 首要hitTestUIView;

  2. 覆蓋touchesBegan:withEvent:,touchesMoved:withEvent:,touchesEnded:withEvent:以獲得更好的控制。

這兩種方法都需要你繼承你的UIView(將要檢測的龍頭之一)。

請分別查看UIView Class ReferenceUIResponder Class Reference

如果你不想繼承你的UIView,另一個選擇是將其連接到UITapGestureRecognizer

gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapOnView)]; 
[self.disableViewOverlay addGestureRecognizer:gestureRecognizer]; 

你會然後禁用在handleTapOnView功能疊加。 手勢識別器僅適用於iOS 3.2以上版本。

選中此項:UITapGestureRecognizer Class Reference