zoukankan      html  css  js  c++  java
  • 如何在一个控件上同时实现单触和多触事件

    在开发当中有时应需求会要求在一个控件上实现响应多种触控的操作,比如一个UIButton,需要你同时处理手指一次点击,两次点击,甚至三次,多次点击的事件,如何处理?

    虽然从用户的角度出发,也许每个控件都只实现一次点击的事件是最直接的也是最可接受的,每个控件最好都只有单一职责,但是开发当中总会有这样那样的需求不得不去做。

    下面举个例子:

     1 UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 120, 40)];
    2
    3 UITapGestureRecognizer *clickOnce = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onButtonClickOnce)];
    4
    5 clickOnce.numberOfTapsRequired = 1;
    6
    7 [button addGestureRecognizer: clickOnce];
    8
    9 [clickOnce release];
    10
    11
    12
    13
    14 UITapGestureRecognizer *clickTwice = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onButtonClickTwice)];
    15
    16 clickTwice.numberOfTapsRequired = 2;
    17
    18 [button addGestureRecognizer: clickTwice];
    19
    20 [clickTwice release];
    21
    22
    23
    24
    25 UITapGestureRecognizer *clickThrice = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onButtonClickThrice)];
    26
    27 clickThrice.numberOfTapsRequired = 3;
    28
    29 [button addGestureRecognizer: clickThrice];
    30
    31 [clickThrice release];

    然后分别实现onButtonClickOnce,onButtonClickTwice,onButtonClickThrice三个方法分别去处理单击,双击和三次点击的事件就好了,当然也可以处理更多次的点击事件。

    当然实现的方式并不只这一种,其他的方式就等慢慢探索了。

  • 相关阅读:
    Sublime Text 3 安装插件管理 Package Control
    Sublime Text 2&3中输入法不跟随光标移动的问题的解决方法
    Centos 7 yum 安装php
    Centos 7 yum 安装Apache
    正则验证多个邮箱用分号隔开
    Linux下修改网卡IP、DNS和网关
    mysqldump when doing LOCK TABLES问题
    jQuery遍历json
    Yii中CDbCriteria常用方法
    Parse error: syntax error, unexpected T_PUBLIC in 问题解决
  • 原文地址:https://www.cnblogs.com/simonshi2012/p/2128734.html
Copyright © 2011-2022 走看看