iOS|iOS UIGestureRecognizer(手势、单击、拖拽 、拖拽、旋转、轻扫 、长按、边缘滑动,功能介绍)~demo


联系人:石虎 QQ:1224614774昵称: 嗡嘛呢叭咪哄
QQ群:807236138群称: iOS 技术交流学习群

#import "ViewController.h"

@interface ViewController ()
{
UITapGestureRecognizer *_tap; //单击
UIPanGestureRecognizer *_pan; //拖拽
UIPinchGestureRecognizer *_pinch; //拖拽
UIRotationGestureRecognizer *_rotation; //旋转
UISwipeGestureRecognizer *_swipe; //轻扫
UILongPressGestureRecognizer *_longpress; //长按
UIScreenEdgePanGestureRecognizer *_edgePan; //边缘滑动手势
}
@property (nonatomic,weak)IBOutletUIView *testView;
@end

@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[selfaddTapGesture];
[selfaddPanGesture];
[selfaddPinchGesture];
[selfaddRotationGesture];
[selfaddSwipeGesture];
[selfaddLongpressGesture];
[selfaddEdgePanGesture];
//手势谦让
[selfgestureHumility];
}

#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(@"拖拽");
【iOS|iOS UIGestureRecognizer(手势、单击、拖拽 、拖拽、旋转、轻扫 、长按、边缘滑动,功能介绍)~demo】CGPoint point = [pantranslationInView:pan.view];
//pan.view.transform =CGAffineTransformMakeTranslation(point.x, point.y);
pan.view.transform =CGAffineTransformTranslate(pan.view.transform, point.x, point.y);
[pan setTranslation:CGPointZeroinView: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 = [UIColorcolorWithRed:arc4random()%256/255.0green:arc4random()%256/255.0blue:arc4random()%256/255.0alpha:1.0];
self.view.backgroundColor = random;
}

#pragma mark - privatemethods//手势谦让
- (void)gestureHumility{
[_pan requireGestureRecognizerToFail:_swipe];
}
@end

谢谢!!!

    推荐阅读