IOS开发—7种惯用手势UIGestureRecognizer介绍
IOS开发—7种常用手势UIGestureRecognizer介绍
7种常用手势UIGestureRecognizer介绍
#import "ViewController.h" @interface ViewController () { UITapGestureRecognizer *_tap; UIPanGestureRecognizer *_pan; UIPinchGestureRecognizer *_pinch; UIRotationGestureRecognizer *_rotation; UISwipeGestureRecognizer *_swipe; UILongPressGestureRecognizer *_longpress; UIScreenEdgePanGestureRecognizer *_edgePan; } @property (nonatomic, weak) IBOutlet UIView *testView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self addTapGesture]; [self addPanGesture]; [self addPinchGesture]; [self addRotationGesture]; [self addSwipeGesture]; [self addLongpressGesture]; [self addEdgePanGesture]; // 手势谦让 [self gestureHumility]; } #pragma mark - 手势 //单击 - (void)addTapGesture{ _tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)]; _tap.numberOfTapsRequired = 1; [_testView addGestureRecognizer:_tap]; } //拖拽 - (void)addPanGesture{ _pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)]; _pan.minimumNumberOfTouches = 1; [_testView addGestureRecognizer:_pan]; } //捏合 - (void)addPinchGesture{ _pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAction:)]; [_testView addGestureRecognizer:_pinch]; } //旋转 - (void)addRotationGesture{ _rotation = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotationAction:)]; [_testView addGestureRecognizer:_rotation]; } //轻扫 - (void)addSwipeGesture{ _swipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeAction:)]; //指定扫动方向 _swipe.direction = UISwipeGestureRecognizerDirectionDown; [_testView addGestureRecognizer:_swipe]; } //长按 - (void)addLongpressGesture{ _longpress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longpressAction:)]; _longpress.minimumPressDuration = 1.0; [_testView addGestureRecognizer:_longpress]; } //边缘滑动手势 - (void)addEdgePanGesture{ _edgePan = [[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(edgePanAction:)]; _edgePan.edges = UIRectEdgeLeft; [self.view addGestureRecognizer:_edgePan]; } #pragma mark - 动作 //单击 - (void)tapAction:(UITapGestureRecognizer *)tap{ NSLog(@"单击"); } //拖拽 - (void)panAction:(UIPanGestureRecognizer *)pan{ NSLog(@"拖拽"); CGPoint point = [pan translationInView:pan.view]; // pan.view.transform =CGAffineTransformMakeTranslation(point.x, point.y); pan.view.transform = CGAffineTransformTranslate(pan.view.transform, point.x, point.y); [pan setTranslation:CGPointZero inView:pan.view]; } //捏合 - (void)pinchAction:(UIPinchGestureRecognizer *)pinch{ NSLog(@"捏合"); pinch.view.transform = CGAffineTransformMakeScale(pinch.scale, pinch.scale); } //旋转 - (void)rotationAction:(UIRotationGestureRecognizer *)rotation{ NSLog(@"旋转"); rotation.view.transform = CGAffineTransformMakeRotation(rotation.rotation); } //轻扫 - (void)swipeAction:(UISwipeGestureRecognizer *)swipe{ NSLog(@"向下轻扫"); } //长按 - (void)longpressAction:(UILongPressGestureRecognizer *)longpress{ NSLog(@"长按"); } //边缘滑动手势 - (void)edgePanAction:(UIScreenEdgePanGestureRecognizer *)edgePan{ NSLog(@"左边缘滑动"); UIColor *random = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0]; self.view.backgroundColor = random; } #pragma mark - privatemethods - (void)gestureHumility{ [_pan requireGestureRecognizerToFail:_swipe]; } @end