UIGestureRecognizer学习之——UITapGestureRecognizer

来源:互联网 发布:移动网络网页游戏 编辑:程序博客网 时间:2024/06/05 10:52

UITapGestureRecognizer是UIGestureRecognizer的子类。
UITapGestureRecognizer除了继承UIGestureRecognizer的属性外,还提供如下俩个属性:

numberOfTapRequired: //指定该手势处理器只处理几次触碰事件numberOfTouchesRequired: //指定该手势处理器只处理几个手指的触碰事件

示例:为应用中间的UIView添加UITapGestureRecognizer手势处理器,通过该手势处理器来处理用户的点击手势,程序会在界面上方的UILabel中显示用户的手势。
这里写图片描述

@interface FKViewController : UIViewController@property (strong, nonatomic) IBOutlet UIView *gv;@property (strong, nonatomic) IBOutlet UILabel *label;@end
@implementation FKViewController- (void)viewDidLoad{    [super viewDidLoad];    self.view.backgroundColor = [UIColor lightGrayColor];    self.gv.layer.borderWidth = 2;    self.gv.layer.cornerRadius = 6;    // 设置gv控件支持用户交互    self.gv.userInteractionEnabled = YES;    // 设置gv控件支持多点触碰    self.gv.multipleTouchEnabled = YES;    for (int i = 1 ; i < 6 ; i++)    {        // 创建手势处理器,指定使用该控制器的handleTap:方法处理手势        UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc]            initWithTarget:self action:@selector(handleTap:)];        // 设置该点击手势处理器只处理i次连击事件        gesture.numberOfTapsRequired = i;        // 设置该点击手势处理器只处理2个手指的触碰事件        gesture.numberOfTouchesRequired = 2;        // 为gv控件添加手势处理器。        [self.gv addGestureRecognizer:gesture];    }}// 实现手势处理器的方法,该方法应该声明一个形参。// 当该方法被激发时,手势处理器会作为参数传给该方法的参数。- (void) handleTap:(UITapGestureRecognizer*)gesture{    NSUInteger touchNum = gesture.numberOfTouches;    NSUInteger tapNum = gesture.numberOfTapsRequired;    self.label.text = [NSString stringWithFormat:        @"用户使用%d个手指进行触碰,触碰次数为:%d" , touchNum , tapNum];    // 指定2秒后清除label的文本    [self.label performSelector:@selector(setText:)        withObject:@"" afterDelay:2];}@end

上面程序中一共创建了5个手势处理器,这些手势处理器分别用于检测用户的1次、2次、3次、4次、5次点击。(如果在模拟器上运行,按下option键即可与鼠标配合模拟出两个手指的效果)

1 0