#import "WZViewController.h"
@interface WZViewController ()<UIGestureRecognizerDelegate>
@property (weak, nonatomic) IBOutlet UIView *gestureView;
@end
@implementation WZViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self text];
}
//-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
//{
// [super touchesBegan:touches withEvent:event];
//}
-(void)text
{
[self swipe];//轻扫
[self longpress];//长按
[self rotate];//旋转
[self pinch];//捏合
[self pan];//拖拽
[self tap];//敲击
}
//轻扫
-(void)swipe
{
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeClick)];
swipeGesture.delegate = self;
swipeGesture.direction = UISwipeGestureRecognizerDirectionLeft;
[self.gestureView addGestureRecognizer:swipeGesture];
}
-(void)swipeClick
{
NSLog(@"轻扫view");
}
//长按
-(void)longpress
{
UILongPressGestureRecognizer *pressGesture = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(pressClick:)];
// 至少长按2秒
pressGesture.minimumPressDuration = 2;
// 在触发手势之前,50px范围内长按有效
pressGesture.allowableMovement = 50;
pressGesture.delegate = self;
[self.gestureView addGestureRecognizer:pressGesture];
}
-(void)pressClick:(UILongPressGestureRecognizer*)pressGesture
{
NSLog(@"长按view");
}
//捏合手势
-(void)pinch
{
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchClick:)];
pinchGesture.delegate = self;
[self.gestureView addGestureRecognizer:pinchGesture];
}
-(void)pinchClick:(UIPinchGestureRecognizer*)pinchGesture
{
pinchGesture.view.transform = CGAffineTransformScale(pinchGesture.view.transform, pinchGesture.scale, pinchGesture.scale);
pinchGesture.scale = 1;
}
//旋转
-(void)rotate
{
UIRotationGestureRecognizer *rotateGesture = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotateClick:)];
rotateGesture.delegate = self;
[self.gestureView addGestureRecognizer:rotateGesture];
}
-(void)rotateClick:(UIRotationGestureRecognizer *)rotateGesture
{
rotateGesture.view.transform = CGAffineTransformRotate(rotateGesture.view.transform, rotateGesture.rotation);
rotateGesture.rotation = 0;
}
//拖拽
-(void)pan
{
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panClick:)];
panGesture.delegate = self;
[self.gestureView addGestureRecognizer:panGesture];
}
-(void)panClick:(UIPanGestureRecognizer*)panGesture
{
//在view上移动的距离
CGPoint point = [panGesture translationInView:panGesture.view];
panGesture.view.transform = CGAffineTransformTranslate(panGesture.view.transform, point.x, point.y);
// CGPoint center = panGesture.view.center;
// center.x += point.x;
// center.y += point.y;
// panGesture.view.center = center;
[panGesture setTranslation:CGPointZero inView:panGesture.view];
}
//敲击
-(void)tap
{
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapClick:)];
tapGesture.delegate = self;
// tapGesture.numberOfTapsRequired = 2;
// tapGesture.numberOfTouchesRequired = 2;
[self.gestureView addGestureRecognizer:tapGesture];
}
-(void)tapClick:(UITapGestureRecognizer *)tapGesture
{
NSLog(@"我被敲击了");
}
#pragma mark - 代理方法
/**
* 当点击view的时候,会先调用这个方法
*/
//- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
//{
// CGPoint pos = [touch locationInView:touch.view];
// if (pos.x <= touch.view.frame.size.width * 0.5) {
// return YES;
// }
// return NO;
//}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
@end