手势识别

UIGestureRecognizer介绍

1、UIGestureRecognizer类是个抽象类,下面的子类是具体的手势,开发者可以直接使用这些手势识别。

  • UITapGestureRecognizer 点一下
  • UIPinchGestureRecognizer 二指往内或往外拨动,如缩放
  • UIRotationGestureRecognizer 旋转
  • UISwipeGestureRecognizer 滑动,快速移动
  • UIPanGestureRecognizer 拖移,慢速移动
  • UILongPressGestureRecognizer 长按

2、使用手势步骤

1)创建手势实例。

2)添加到需要识别的View中。

一个手势中能对应一个view,但是一个view可以有多个手势。

3、Pan拖动手势

UIImageView * redImageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 100, 160)];
redImageView.backgroundColor = [UIColor redColor];
redImageView.userInteractionEnabled = YES;
[self.view addSubview:redImageView];

UIPanGestureRecognizer * panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[redImageView addGestureRecognizer:panGestureRecognizer];

回调方法

-(void)handlePan:(UIPanGestureRecognizer*)recognizer
{
    CGPoint translation = [recognizer translationInView:self.view];
    recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);
    [recognizer setTranslation:CGPointZero inView:self.view];
}

4、Pinch缩放手势

UIPinchGestureRecognizer * pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];
[redImageView addGestureRecognizer:pinchGestureRecognizer];

回调方法

-(void)handlePinch:(UIPinchGestureRecognizer*)recognizer
{
    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
    recognizer.scale = 1;
}

5、Rotation旋转手势

UIRotationGestureRecognizer * rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(handleRotate:)];
[redImageView addGestureRecognizer:rotationGestureRecognizer];

回调方法

-(void)handleRotate:(UIRotationGestureRecognizer*)recognizer
{
    recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);
    recognizer.rotation = 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值