2012/3/20

UIGestureRecognizer 手勢與觸控動作


如果我們的class並非繼承至UIRespondser、UIView、UIViewController,但又想直接幫view增加觸控等事件,可以用UITapGestureRecognizer,來加入事件監聽

為View增加一個tap監聽事件
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(onSingleTap:)];
singleTap.numberOfTapsRequired=2;
[self.view addGestureRecognizer:singleTap];


如果我們想寫一個手勢動作判斷

我們可以寫一個UIGestureRecognizer的子類,並實作UIGestureRecognizerDelegate來完成
@optional
//收到一個Touch的動作,通常是判斷手勢的第一個動作,會比view本身的touchesBegan:withEvent:還早發生,return NO表示不繼續識別
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;

//手勢動作開始
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;

//
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;

1 則留言:

邱老師 提到...

哇你好厲害喔,寫的真專業!!!