1.单击手势:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
tap.numberOfTapsRequired = 1;
tap.numberOfTouchesRequired = 1;
[self.iconView addGestureRecognizer:tap];
[tap addTarget:self action:@selector(tapView)];
2.长按手势:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] init];
longPress.minimumPressDuration = 1;
longPress.allowableMovement = 50;
[self.customView addGestureRecognizer:longPress];
[longPress addTarget:self action:@selector(longPressView)];
3.轻扫手势:
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] init];
swipe.direction = UISwipeGestureRecognizerDirectionUp;
[self.customView addGestureRecognizer:swipe];
[swipe addTarget:self action:@selector(swipeView)];
4.旋转手势:
UIRotationGestureRecognizer *gesture = [[UIRotationGestureRecognizer alloc] init];
[self.iconView addGestureRecognizer:gesture];
[gesture addTarget:self action:@selector(rotationView:)];
- (void)rotationView:(UIRotationGestureRecognizer *)gesture
{
self.iconView.transform = CGAffineTransformRotate(self.iconView.transform, gesture.rotation);
gesture.rotation = 0;
}
5.缩放手势:
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] init]
[self.iconView addGestureRecognizer:pinch]
[pinch addTarget:self action:@selector(pinchView:)]
- (void)pinchView:(UIPinchGestureRecognizer *)pinch
{
self.iconView.transform = CGAffineTransformScale(self.iconView.transform, pinch.scale, pinch.scale)
pinch.scale = 1.0
}
6.拖拽手势:
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] init];
[self.customView addGestureRecognizer:pan];
[pan addTarget:self action:@selector(panView:)];
- (void)panView:(UIPanGestureRecognizer *)pan
{
CGPoint point = [pan translationInView:pan.view];
NSLog(@"拖拽事件 %@", NSStringFromCGPoint(point));
CGPoint temp = self.customView.center;
temp.x += point.x;
temp.y += point.y;
self.customView.center = temp;
[pan setTranslation:CGPointZero inView:pan.view];
}
7.若要一个view同时支持多个手势,需要设置手势的代理并实现以下代理方法(返回是否同时支持多个手势):
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
NSLog(@"%@ - %@", gestureRecognizer.class, otherGestureRecognizer.class);
return YES;
}