码迷,mamicode.com
首页 > 其他好文 > 详细

手势识别

时间:2015-11-27 14:28:47      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

#import "YZViewController.h"

@interface YZViewController ()<UIGestureRecognizerDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation YZViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // 移动图片
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    [_imageView addGestureRecognizer:pan];
    
}

- (void)pan:(UIPanGestureRecognizer *)pan
{
    
    CGPoint trans = [pan translationInView:_imageView];
    
    _imageView.transform = CGAffineTransformTranslate(_imageView.transform, trans.x, trans.y);
    
    // 复位
    [pan setTranslation:CGPointZero inView:_imageView];
}

// Simultaneous:同时
// 默认是不支持多个
// 当你使用一个手势的时候就会调用
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

- (void)addPinch
{
    // 捏合
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];
    pinch.delegate = self;
    
    [_imageView addGestureRecognizer:pinch];
}

- (void)pinch:(UIPinchGestureRecognizer *)pinch
{
    
    _imageView.transform = CGAffineTransformScale(_imageView.transform, pinch.scale, pinch.scale);
    // 复位
    pinch.scale = 1;
}

- (void)addRotation
{
    // 旋转
    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotation:)];
    rotation.delegate = self;
    [_imageView addGestureRecognizer:rotation];

}


- (void)rotation:(UIRotationGestureRecognizer *)rotation
{
    
//    _imageView.transform = CGAffineTransformMakeRotation(rotation.rotation);
    NSLog(@"%f",rotation.rotation);
    
    _imageView.transform = CGAffineTransformRotate(_imageView.transform, rotation.rotation);
    
    // 复位
    rotation.rotation = 0;
}

// 清扫
- (void)addSwipe
{
    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];
    swipe.direction = UISwipeGestureRecognizerDirectionLeft;
    [_imageView addGestureRecognizer:swipe];
}


- (void)swipe:(UISwipeGestureRecognizer *)swipe
{
    NSLog(@"");
}

- (void)addLong
{
    // 长按
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
    
    longPress.minimumPressDuration = 2;
    // 手势识别之前的最大移动范围,超出这个范围就不能识别
    longPress.allowableMovement = 10;
    
    [_imageView addGestureRecognizer:longPress];

}

- (void)longPress:(UILongPressGestureRecognizer *)longPress
{
    if (longPress.state == UIGestureRecognizerStateBegan) {
        
        NSLog(@"longPress");
    }
}

- (void)addTap
{
    // 1.创建点按手势
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self action:@selector(tap:)];
    //    tap.numberOfTapsRequired = 2;
    //    tap.numberOfTouchesRequired = 2;
    tap.delegate = self;
    [_imageView addGestureRecognizer:tap];

}

// 返回NO,表示不触发手势事件
//- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
//{
//    CGPoint pos = [touch locationInView:_imageView];
//
//    if (pos.x < _imageView.bounds.size.width * 0.5 ) {
//        
//        return NO;
//    }
//    return YES;
//}


- (void)tap:(UITapGestureRecognizer *)tap
{
    NSLog(@"tap");
}

@end

 

手势识别

标签:

原文地址:http://www.cnblogs.com/521it/p/5000330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!