以下是UITouch的一段引语
触摸对象在多点触摸序列中始终存在。在处理事件时,从不保留触摸对象。如果您需要将有关触摸的信息从一个触摸阶段保存到另一个触摸阶段,请从触摸中复制该信息。
这是另一个来自UIKit应用程序事件处理指南的
清单9-1显示了TouchableView类的主要实现及其触摸处理方法。每个方法迭代触觉并执行所需的操作。touchViews字典使用UITouch对象作为键检索屏幕上正在操作的子视图。
class TouchableView: UIView {
var touchViews = [UITouch:TouchSpotView]()
...
}显然,他们使用UITouch实例作为字典键违反了自己的规则.
这是怎么回事?对于复杂的手势跟踪,应该保留UITouch实例吗?
发布于 2018-07-06 02:49:45
发布于 2017-07-12 21:00:53
苹果的开发者并不完美,是的,我同意他们违反了自己的指导方针。类似地,Apple说您不应该使用子类集合视图,但是我以前已经这样做了,因为添加了一些小的实用程序函数,没有任何负面影响。我想说的是,这应该是一个类似的类别“不要做它”。如果他们说不要这样做,你就冒着自己的风险去做。但是实际上,既然创建代理NSTouch记录非常容易,为什么不这样做呢?出于一个类似的原因,我最终将我的集合视图实用程序函数“分解”到另一个实用程序类中,仅仅是因为我很烦躁,想确保自己是安全的;)
https://stackoverflow.com/questions/45067293
复制相似问题