寫一個(gè)Demo來自定義一個(gè)長(zhǎng)觸屏事件,自定義長(zhǎng)按手勢(shì)。
實(shí)現(xiàn)步驟:
1.創(chuàng)建一個(gè)自定義手勢(shì)類,命名為L(zhǎng)ongPressGestureRecognizer,在創(chuàng)建的時(shí)候繼承UIGestureRecognizer
LongPressGestuRecognizer.h:
#import @interface LongPressGestureRecognizer : UIGestureRecognizer @end
LongPressGestuRecognizer.m:
#import "LongPressGestureRecognizer.h" #import #import NSInteger timer1; NSInteger timer2; @implementation LongPressGestureRecognizer -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesBegan:touches withEvent:event]; NSDate *nowDate = [NSDate date]; NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"ss"]; timer1 = [[dateformatter stringFromDate:nowDate] integerValue]; [dateformatter release]; NSLog(@"%d",timer1); } -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesEnded:touches withEvent:event]; NSDate *nowDate = [NSDate date]; NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"ss"]; [dateformatter release]; NSLog(@"%d",timer1); if ((timer2 -timer1) >= 2) { self.state = UIGestureRecognizerStateEnded; } } @end
2.修改主ViewController
ViewController.h:
#import @interface DXWViewController : UIViewController @end
ViewController.m:
#import "DXWViewController.h" #import "LongPressGestureRecognizer.h" @interface DXWViewController () @end @implementation DXWViewController - (void)viewDidLoad { [super viewDidLoad]; LongPressGestureRecognizer * longPress = [[LongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LongPress:)]; [self.view addGestureRecognizer:longPress]; } -(void)LongPress:(LongPressGestureRecognizer *)my { NSLog(@"OK"); } @end
3.ViewController中的觸屏事件touchesBegan和自定義手勢(shì)中的touchesBegan區(qū)別:
ViewController中的touchesBegan是針對(duì)整個(gè)View而言的,而自定義中的手勢(shì)是要綁定到某個(gè)特定的view,只針對(duì)這個(gè)view才相應(yīng)的手勢(shì)事件
當(dāng)前題目:[IOS]自定義長(zhǎng)觸屏事件
文章URL:
http://weahome.cn/article/psgeoc.html