ios开发手势处理之手势识别二

#import "ViewController.h"

@interface ViewController ()<UIGestureRecognizerDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *imageV;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    
    self.imageV.userInteractionEnabled = YES;
    
     //添加旋转手势
    [self rotationGes];
    
      //添加捏合手势
    [self pinch];

    
    
}

//Simultaneous:同时
//是否允许同时支持多个手势
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{

    return YES;
}


 //添加旋转手势
- (void)rotationGes{
    //添加旋转手势
    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGes:)];
    
    rotation.delegate = self;
    
    [self.imageV addGestureRecognizer:rotation];
}



- (void)rotationGes:(UIRotationGestureRecognizer *)rotationGes{

    self.imageV.transform = CGAffineTransformRotate(self.imageV.transform, rotationGes.rotation);
    
    //复位
    [rotationGes setRotation:0];
    
    
}

  //添加捏合手势
- (void)pinch{
  
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];
    pinch.delegate = self;
    [self.imageV addGestureRecognizer:pinch];
}

//当缩放时调用
- (void)pinch:(UIPinchGestureRecognizer *)pinch{
    NSLog(@"%s",__func__);
    self.imageV.transform = CGAffineTransformScale(self.imageV.transform, pinch.scale,pinch.scale );
    
    //复位
    [pinch setScale:1];
}



- (void)panGes{
    //添加拖动手势
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    [self.imageV addGestureRecognizer:pan];
}

//当拖动View时调用
- (void)pan:(UIPanGestureRecognizer *)pan {
    
    //获取偏移量(相对于最原始的偏移量)
    CGPoint transP = [pan translationInView:self.imageV];
    NSLog(@"%@",NSStringFromCGPoint(transP));
    
    self.imageV.transform = CGAffineTransformTranslate(self.imageV.transform, transP.x, transP.y);
    
    //让它相对于上一次
    //复位.
    [pan setTranslation:CGPointZero inView:self.imageV];
    
}

@end

 

转载于:https://www.cnblogs.com/cqb-learner/p/5816142.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值