iOS 9 中 UIResponder 新增了 touchesEstimatedPropertiesUpdated 方法,归类于 touch 事件方法组中,与 touchBegan,touchEnd 等方法类似。
应用场景
普通的 iphone 应用开发中不会用到这个方法,这个方法是为了 Apple Pencil 的特性设计的,主要见于 Apple Pencil 和 iPad 的联动应用中,例如用 Apple Pencil 在 iPad 上画画。
为何要使用这个方法
主要的原因是 Apple Pencil 产生的 touch 事件的部分信息(如 Pencil 的方向等)传递到 iPad 或 iPhone 上会有一定的延时。
UIKit 的回调方法 touchBegan 是立即产生的,其返回的参数 touch 中包含了 Pencil 产生的额外信息,这个额外信息是有延时的。所以,首次回调时会给出额外信息的预估值,延时获取真实值之后会调用 touchesEstimatedPropertiesUpdated 方法更新额外信息。