基础手势识别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础手势识别相关的知识,希望对你有一定的参考价值。
一、UIGestureRecognizer介绍
手势在ios经常用到,可以说是非常重要的存在,在之前,大部分都是通过touch方法来进行手势的判定,但是在ios系统3.2之后,添加了UIGestureRecongnizer抽象类,抽象出了几个子类
这些手势都很简单,基本上明白一个的用法,其他的也就都明白了,所以我们今天就以 拖动为例,给大家做一个侧滑展开菜单栏
我们先来了解一下这些手势的基本用法
1、缩放手势
UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];
[imageView addGestureRecognizer:pinchGestureRecognizer];
回调方法
- (void) handlePinch:(UIPinchGestureRecognizer*) recognizer { recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale); recognizer.scale = 1; }
2.拖动手势
UIPanGestureRecognizer * panRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePan:)]; //添加手势到 tabBarController.view [tabBarController.view addGestureRecognizer:panRecognizer];
回调方法
- (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]; }
3.旋转手势
/** * 处理旋转手势 * * @param recognizer 旋转手势识别器对象实例 */ - (void)handleRotation:(UIRotationGestureRecognizer *)recognizer
{ recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation); recognizer.rotation = 0.0; }
大家需要注意的是,一个手势只能对应一个View, 但是一个View可以有多个手势
以上是关于基础手势识别的主要内容,如果未能解决你的问题,请参考以下文章
转iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势) -- 不错不错