触摸对象在多点触控序列中持续存在。 从不 处理事件时保留触摸对象。如果需要保留 关于从一个触摸阶段到另一个触摸阶段的触摸的信息,复制它 来自触摸的信息。
然后来自Event Handling Guide for UIKit Apps的另一个:
清单9-1显示了TouchableView类的主要实现 及其触控处理方法。每种方法都遍历 触摸并执行所需的操作。 touchViews字典 使用UITouch对象作为检索子视图的键 在屏幕上操纵。
class TouchableView: UIView {
var touchViews = [UITouch:TouchSpotView]()
...
}
显然,他们通过将UITouch
个实例用作字典键来违反自己的规则......
那么与此相关的是什么?是否应保留UITouch
个实例以进行复杂的手势跟踪?
答案 0 :(得分:1)
Apple开发人员并不完美,是的,我同意他们违反了他们自己的指导方针。类似地,Apple说你不应该继承集合视图,但我之前已经这样做了,因为添加了一些小的实用函数,没有任何负面影响。我会说这应该放在类似的类别中,不要这样做。"如果他们说过不这样做,你需要自担风险。但实际上因为创建代理NSTouch记录非常容易,为什么不这样做呢?出于类似的原因,我最终选择了" factoring"我的集合视图实用程序在另一个实用程序类中运行,只是因为我肛门并且想确保我是安全的;)
答案 1 :(得分:0)
我向Apple提交了一个有关示例代码与UITouch文档之间不一致的错误报告。结果是从UITouch documentation中删除了“处理事件时从不保留触摸对象”这一段。由于sample code保留了UITouch对象,因此我们可以假定它是允许的。