UIEvent | UITouch | timestamp

一、UITouch 理解 3 要点

  1. 一个 UITouch 对象, 就是一根手指触摸一次屏幕。 它包含了 “触摸屏幕 — 滑动 — 离开屏幕” 整个过程。 所以 UITouch 有个 phase 属性,记录了 整个过程的所有3个状态。由于一个电话或者其他事件可能会突然中断用户的操作,所以 UITouch 还外有 1 个取消状态。一个 UITouch 每当进入一次新的状态,它的一些显而易见的属性都会随之变化。如,位置、前一个位置、时间戳(timestamp)。不过当一个 UITouch 表面上从一个 View 移动到另一个 View 上时,UITouch 的 view 和 window 属性也不会变化。换句话说,UITouch 一发生就和 UITouch 最开始发生的( initial )的 view 绑定了。
  2. 如果一个 UITouch 紧接着上一个 UITouch 发生,只要满足两个 UITouch 在一定时间、一定范围的条件,那么第二个 UITouch 就不算一个完全独立的 UITouch。一个明显的属性是 tapcount,即点击次数,其实这里理解成第几次点击更为确切。tapCount 至少为 1,可以为 2,3,4... ... 等等。他们分别意味着单击,双击,三连击等等动作。
  3. UITouch 有个 UIGestureRecognizers 数组,里面装了所有接受该 UITouch GR。如果没有 GR 接收,那么该数组为空。


二、UIEvent 理解 2 要点

  1. 一个 UIEvent 代表一个事件,它是比 UITouch 更为抽象的对象,相当于把 UITouch 或者其他行为包装了一下。 一个 UIEvent 可以包含一个 UITouch(单指触控)或者 多个 UITouch (多指触控)。也可以包含设备(如 iPhone )晃动、远程遥控(如通过耳机线调整音量)等行为。所以UIEvent 有一个 type 属性,他可以是上句所说的 3 种 type的任意一种。种类型对应一类行为。同时它还有一个子类型属性,是从 3 个主类型里派生出来的。如,remoteControl(远程遥控) 里有 remoteControlPlay, remoteControlPause等等子类型。
  2. UIEvent 最经常包装的行为就是 UITouch。所以UIEvent 明目张胆地提供了 4 个返回 UITouch 集合(NSSet ) 的方法。他们分别从 view、window、GR中返回,allTouches 返回所有的 UITouch。


三、Timestamp 理解

  • 简单来讲,时间戳记录了自从上次开机的时间间隔。它的类型是 NSTimeInterval,见文知意,很好理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值