• UITapGestureRecognizer 的用法


    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;
    7:
    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: }else if(sender.numberOfTapsRequired == 2){
    8: //单指双击
    9: NSLog(@"单指双击");
    10: }
    11: }
    12: //处理双指事件
    13: - (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender
    14: {
    15: if (sender.numberOfTapsRequired == 1) {
    16: //双指单击
    17: NSLog(@"双指单击");
    18: }else if(sender.numberOfTapsRequired == 2){
    19: //双指双击
    20: NSLog(@"双指双击");
    21: }
    22: }
    将相应代码复制到你的工程中即可使用,由于代码中已经有详细的解释说明,这里就不在重复解释了。代码中只是列举了单指与双指对于单击或多击的处理,同理多指的操作需修改numberOfTouchesRequired属性,对点击的次数需修改numberOfTapsRequired属性。对于其他手势例如UISwipeGestureRecognizerUILongPressGestureRecognizer,UILongPressGestureRecognizer的操作使用类似处理。
  • 相关阅读:
    Linux查看物理CPU个数、核数、逻辑CPU个数
    epoll、cpoll、xpoll
    Curl命令简介
    ps:分钟级监控服务内存变化情况
    linux系统/var/log目录下的信息详解
    pthread_create、pthread_join
    【转载】nginx中gzip的各项配置以及配置参数的意思详解
    linux——Nginx——反向代理服务器
    点击复制文本 ctrl+v粘贴
    npm源切换
  • 原文地址:https://www.cnblogs.com/wangxiaorui/p/5033323.html
Copyright © 2020-2023  润新知