• 手势识别1:


    一 介绍手势事件识别

    1.手势事件识别必须要添加到一个 UIView 里面去,一个单独存在的视图可以添加多个手势识别器。一旦这个界面捕获到了手势动作,如果有必要这个视图将会把这个手势动作沿着视图继承关系向下传递到别的视图中。 
     
    2.
    为了能够处理手势的动作必须要按照如下步骤来进行操作。
      1). 创建一个合适的手势识别器的对象。
      2). 把这个手势识别器的对象添加到到一个视图上,以接收手势。
      3). 编写一个方法,当希望的手势发生时,会调用这个方法。 

    3.

    与手势相关的任何目标方法都必须遵循下面的规则:

      1)这个方法返回类型必须为 void。

      2)这个方法要么是无参数类型的,要么只能接受一个 UIGestureRecognizer 类型的参数,当系统调用这个方法时,会通过这个参数传递一个手势识别器过来。

    - (void) tapRecognizer:(UITapGestureRecognizer *)paramSender{
     /* */
    }
    - (void) tapRecognizer{
    /* */
    }
    4.
    手势识别器一般可以分为两个大类,一个是单独的一个手势,一个是连贯的手势组合。
    单独的顾名思义,就是一旦检测到手势事件发生,就调用相应的响应方法。连贯的就是一组手势动作,当事件发生时会重复的调用目标对象中的方法,直到事件结束。 
    例如,双击事件,其实是一个单独的事件。虽然是有两个点击事件组成的,但是这个系统的手势识别器还是把它当做一个事件来处理的,因为两次点击时间非常的相近。双击事件 发生之后会调用添加的双击事件的捕获方法。
     
    一个很好的连续手势组的例子就是旋转,手势动作将会当用户开始旋转之后就开始了, 当用户的手离开了屏幕之后就停止了。这种类型的手势监听方法将会多次的运行。可以使用 UIView 的实例方法 addGestureRecognizer:方法将手势识别器添加到 view 中。 当需要时,可以通过 removeGestureRecognizer:方法将其从 view 中移除。

    UIGestureRecognizer 类有一个名为 state 的属性,这个变量代表了不同状态的手势以便手势识别器能够很好的进行辨别,单独的手势和连贯的手势识别器都有一组不同的状态值

     
    单独的手势识别器可以传递如下状态值:UIGestureRecognizerStatePossible; UIGestureRecognizerStateRecognized ; UIGestureRecognizerStateFailed

    一组连贯的手势组可以传递如下的状态值: UIGestureRecognizerStatePossible ; UIGestureRecognizerStateBegan ; UIGestureRecognizerStateChanged ; UIGestureRecognizerStateEnded; UIGestureRecognizerStateFailed 

    注意:当任意相关的手势识别到了在 view 上进行了触摸,手势识别器的状态都会被修改为 UIGestureRecognizerStatePossible。另外关于连贯手势识别,如果任意的手势被中断了,都会发生 UIGestureRecognizerStateCancelled 状态。例如,来了一个电话,就可以中断 一个拖拽事件。在这种情况下,手势识别器的状态将被修改为 UIGestureRecognizerStateCancelled。这样之后,手势接受者将不会再收到任何消息,除非用户重新开始手势操作。

    如果连贯手势识别不能处理内部遇到的错误,将会以 UIGestureRecognizerStateFailed 结 束,而不是 UIGestureRecognizerStateEnded。 

  • 相关阅读:
    POM (Project Object Model)简介
    Maven 依赖管理
    Maven仓库—Nexus环境搭建及简单介绍
    Maven的几个核心概念
    maven本地仓库的配置以及如何修改默认.m2仓库位置
    Maven修改镜像仓库地址
    Maven生命周期
    Maven 和 Ant 的区别?
    Maven简介
    Maven常用命令
  • 原文地址:https://www.cnblogs.com/safiri/p/4086849.html
Copyright © 2020-2023  润新知