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

XMG 各种手势

时间:2016-05-06 15:21:47      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

1.

- (void)setUpTap

{

    // 创建点按手势

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];

    tap.numberOfTapsRequired=2;

    tap.delegate = self;

    

    [_imageView addGestureRecognizer:tap];

}


- (void)tap:(UITapGestureRecognizer *)tap

{

    NSLog(@"%s",__func__);

}



2.手势的代理

//是否允许触发手势

//- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer


//是否支持多指,默认不支持

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer




现在允许接收手指的触摸点。比如我下面控制的是左边不响应右边相应

//- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{



*)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

//    // 获取当前的触摸点

//    CGPoint curP = [touch locationInView:self.imageView];

//    

//    if (curP.x < self.imageView.bounds.size.width * 0.5) {

//        return NO;

//    }else{

//        return YES;

//    }

//}


2.长按手势

UILongPressGestureRecognizer

// 默认会触发两次

- (void)setUpLongPress

{

    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];

    

    [self.imageView addGestureRecognizer:longPress];

}



- (void)longPress:(UILongPressGestureRecognizer *)longPress

{

    

    if (longPress.state == UIGestureRecognizerStateBegan) {

        

        NSLog(@"%s",__func__);

    }

}


3.UISwiperGesture

横扫手势分方向  。默认一个控件只支持一种方向

如果想让一个控件支持多个方向的需要添加多个横扫手势

// 默认轻扫的方向是往右

    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe)];

    

    swipe.direction = UISwipeGestureRecognizerDirectionUp;

    

    [self.imageView addGestureRecognizer:swipe];

    

    // 如果以后想要一个控件支持多个方向的轻扫,必须创建多个轻扫手势,一个轻扫手势只支持一个方向

    // 默认轻扫的方向是往右

    UISwipeGestureRecognizer *swipeDown = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe)];

    

    swipeDown.direction = UISwipeGestureRecognizerDirectionDown;

    

    [self.imageView addGestureRecognizer:swipeDown];


4、option+shift可以把两个手指往上面移动

5.  旋转手势

#pragma mark - 旋转手势

- (void)setUpRotation

{

    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotation:)];

    rotation.delegate = self;

    [self.imageView addGestureRecognizer:rotation];

}


// 默认传递的旋转的角度都是相对于最开始的位置

- (void)rotation:(UIRotationGestureRecognizer *)rotation

{

    

    self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, rotation.rotation);

    

    // 复位

    rotation.rotation = 0;

    

    // 获取手势旋转的角度

    NSLog(@"%f",rotation.rotation);

}

6.

捏合手势(也就是缩放手势)

- (void)setUpPinch

{

    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];

    pinch.delegate = self;

    [self.imageView addGestureRecognizer:pinch];

}


- (void)pinch:(UIPinchGestureRecognizer *)pinch

{

    self.imageView.transform = CGAffineTransformScale(self.imageView.transform, pinch.scale, pinch.scale);

    

    // 复位

    

    pinch.scale = 1;

}

7.

拖拽手势


#pragma mark - 拖拽

- (void)setUpPan

{

    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];

    

    

    [self.imageView addGestureRecognizer:pan];

}


- (void)pan:(UIPanGestureRecognizer *)pan

{

    // 获取手势的触摸点

   // CGPoint curP = [pan locationInView:self.imageView];

    

    // 移动视图

    // 获取手势的移动,也是相对于最开始的位置

    CGPoint transP = [pan translationInView:self.imageView];

    

    self.imageView.transform = CGAffineTransformTranslate(self.imageView.transform, transP.x, transP.y);

    

    // 复位

    [pan setTranslation:CGPointZero inView:self.imageView];

    

  //  NSLog(@"%@",NSStringFromCGPoint(curP));

}














XMG 各种手势

标签:

原文地址:http://blog.csdn.net/u012131827/article/details/51326108

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