One Click (Single Tap):
- (void)viewDidLoad {
 [super viewDidLoad];
 UITapGestureRecognizer *tapGestureRecognizer;
 tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap:)];
 tapGestureRecognizer.numberOfTapsRequired = 1;
 [self.view addGestureRecognizer:tapGestureRecognizer];
}
- (void)singleTap:(UIGestureRecognizer *)recognizer {
 NSLog(@"singleTap: %@", NSStringFromCGPoint([recognizer locationInView:[recognizer.view superview]]));
}
Double Click (Double Tap):
- (void)viewDidLoad {
 [super viewDidLoad];
 UITapGestureRecognizer *tapGestureRecognizer;
 tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
 tapGestureRecognizer.numberOfTapsRequired = 2;
 [self.view addGestureRecognizer:tapGestureRecognizer];
}
- (void)doubleTap:(UIGestureRecognizer *)recognizer {
 NSLog(@"doubleTap: %@", NSStringFromCGPoint([recognizer locationInView:[recognizer.view superview]]));
}
Swipe Up:
- (void)viewDidLoad {
 [super viewDidLoad];
 UISwipeGestureRecognizer *swipeGestureRecognizer;
 swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUp:)];
 swipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionUp;
 [self.view addGestureRecognizer:swipeGestureRecognizer];
}
- (void)swipeUp:(UIGestureRecognizer *)recognizer {
 NSLog(@"swipeUp: %@", NSStringFromCGPoint([recognizer locationInView:[recognizer.view superview]]));
}
Swipe Down:
- (void)viewDidLoad {
 [super viewDidLoad];
 UISwipeGestureRecognizer *swipeGestureRecognizer;
 swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeDown:)];
 swipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionDown;
 [self.view addGestureRecognizer:swipeGestureRecognizer];
}
- (void)swipeDown:(UIGestureRecognizer *)recognizer {
 NSLog(@"swipeDown: %@", NSStringFromCGPoint([recognizer locationInView:[recognizer.view superview]]));
}
Swipe Left:
- (void)viewDidLoad {
 [super viewDidLoad];
 UISwipeGestureRecognizer *swipeGestureRecognizer;
 swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)];
 swipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
 [self.view addGestureRecognizer:swipeGestureRecognizer];
}
- (void)swipeLeft:(UIGestureRecognizer *)recognizer {
 NSLog(@"swipeLeft: %@", NSStringFromCGPoint([recognizer locationInView:[recognizer.view superview]]));
}
Swipe Right:
- (void)viewDidLoad {
 [super viewDidLoad];
 UISwipeGestureRecognizer *swipeGestureRecognizer;
 swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
 swipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
 [self.view addGestureRecognizer:swipeGestureRecognizer];
}
- (void)swipeRight:(UIGestureRecognizer *)recognizer {
 NSLog(@"swipeRight: %@", NSStringFromCGPoint([recognizer locationInView:[recognizer.view superview]]));
}
其他部分,大概是注意 UIView 跟 UIViewController 內定已經有把 events 接收處理的事項,例如 UIScrollView 就有捲動事件,假設 UIScrollView 只有提供左右捲動的功能,那就偵測不到 SwipeLeft 跟 SwipeRight ,但 SwipeUp 跟 SwipeDown 仍可以。而 Single Tap 跟 Double Tap 之間,基本上兩者存在時,點擊兩下的過程中,Single Tap Action 跟 Double Tap Action 都會被執行,並且 Single Tap Action 會先被執行。
沒有留言:
張貼留言