如果我們的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 則留言:
哇你好厲害喔,寫的真專業!!!
張貼留言