美文网首页
UITapGestureRecognizer 的用法

UITapGestureRecognizer 的用法

作者: 纯阳子_ | 来源:发表于2016-09-01 22:03 被阅读727次

    UITapGestureRecognizer 的用法

    //单指单击

    2:UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self

    3:action:@selector(handleSingleFingerEvent:)];

    4:singleFingerOne.numberOfTouchesRequired = 1;//手指数

    5:singleFingerOne.numberOfTapsRequired = 1;//tap次数

    6:singleFingerOne.delegate= self;

    8://单指双击

    9:UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self

    10:action:@selector(handleSingleFingerEvent:)];

    11:singleFingerTwo.numberOfTouchesRequired = 1;

    12:singleFingerTwo.numberOfTapsRequired = 2;

    13:singleFingerTwo.delegate= self;

    14:

    15://双指单击

    16:UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self

    17:action:@selector(handleDoubleFingerEvent:)];

    18:doubleFingerOne.numberOfTouchesRequired = 2;

    19:doubleFingerOne.numberOfTapsRequired = 1;

    20:doubleFingerOne.delegate= self;

    21:

    22:UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self

    23:action:@selector(handleDoubleFingerEvent:)];

    24:doubleFingerTwo.numberOfTouchesRequired = 2;

    25:doubleFingerTwo.numberOfTapsRequired = 2;

    26:doubleFingerTwo.delegate= self;

    27:

    28://如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理

    29:[singleFingerOne requireGestureRecognizerToFail:singleFingerTwo];

    30://同理双指亦是如此

    31:[doubleFingerOne requireGestureRecognizerToFail:doubleFingerTwo];

    32:

    33:[self.view addGestureRecognizer:singleFingerOne];

    34:[self.view addGestureRecognizer:singleFingerTwo];

    35:[self.view addGestureRecognizer:doubleFingerOne];

    36:[self.view addGestureRecognizer:doubleFingerTwo];

    37:

    38:[singleFingerOne release];

    39:[singleFingerTwo release];

    40:[doubleFingerOne release];

    41:[doubleFingerTwo release];

    处理事件的方法,代码:

    1://处理单指事件

    2:- (void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender

    3:{

    4:if(sender.numberOfTapsRequired == 1) {

    5://单指单击

    6:NSLog(@"单指单击");

    7:}elseif(sender.numberOfTapsRequired == 2){

    8://单指双击

    9:NSLog(@"单指双击");

    10:}

    11:}

    12://处理双指事件

    13:- (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender

    14:{

    15:if(sender.numberOfTapsRequired == 1) {

    16://双指单击

    17:NSLog(@"双指单击");

    18:}elseif(sender.numberOfTapsRequired == 2){

    19://双指双击

    20:NSLog(@"双指双击");

    21:}

    22:}

    将相应代码复制到你的工程中即可使用,由于代码中已经有详细的解释说明,这里就不在重复解释了。

    代码中只是列举了单指与双指对于单击或多击的处理,同理多指的操作需修改numberOfTouchesRequired属性,对点击的次数需修改numberOfTapsRequired属性。

    对于其他手势例如UISwipeGestureRecognizer,UILongPressGestureRecognizer,UILongPressGestureRecognizer的操作使用类似处理。

    相关文章

      网友评论

          本文标题:UITapGestureRecognizer 的用法

          本文链接:https://www.haomeiwen.com/subject/urdrlttx.html