你的位置:首页 > 操作系统

[操作系统]iOS.UI高级.UITouch触摸与UIGesture手势.03.手势识别器(UIGestureRecognizer)


一、什么是手势识别器:

  手势识别器UIGestureRecognizer是用来识别用户使用设备时候,所用的是手势,是滑动呢,还是轻击还是其他。

  UIGestureRecognizer类,用于检测、识别用户使用设备时所用的手势。它是一个抽象类,定义了所有手势的基本行为。以下是UIGestureRecognizer子类,用于处

理具体的用户手势行为:

  • UITapGestureRecognizer(轻击) 
  • UIPinchGestureRecognizer(捏合) 
  • UIPanGestureRecognizer(平移) 
  • UISwipeGestureRecognizer(轻扫) 
  • UIRotationGestureRecognizer(旋转) 








  • UILongPressGestureRecognizer(长按) 

  它们都继承于UIGestureRecognizer,是它的子类。

二、实例

  以UITapGestureRecognizer(轻击)为例:

  先看它的两个属性:

  @property (nonatomic) NSUInteger  numberOfTapsRequired;       // Default is 1. The number of taps required to match

  @property (nonatomic) NSUInteger  numberOfTouchesRequired;    // Default is 1. The number of fingers required to match

   其中numberOfTapsRequired属性可以轻击的次数,默认是一次。numberOfTouchesRequired属性可以设置几只手指轻击,默认是一只手指。两个属性   可以一起用,达到不同的效果。

  代码示例:

  - (void)viewDidLoad {

      [super viewDidLoad];

   //添加一个轻击手势gesture1,并实现轻击时的方法gestureAction

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

      [self.view addGestureRecognizer:gesture];//别忘了添加手势,这里把手势添加在了self.view上。

   //添加双击手势,实现双击方法。

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

    gesture2.numberOfTapsRequired=2;//如果是双击,将这个属性值设置为哦2。

      [self.view addGestureRecognizer:gesture2];

   gesture1 requireGestureRecognizerToFail:gesture2];//注意这句代码是将两重手势区分开。 

   }

  -(void)sigleGestureAction{

   NSLog(@"单击");

  }

  -(void)doubelGestureAction{

  NSLog(@"双击");

  }

  添加其他的手势,方法基本上都是一样的,当你添加的时,创建完对象不妨看看文档,设置下属性,写下添加的方法就OK了。 

 

  

    

  初学iOS,如有错误,请不吝赐教。