这是来自documentation of UITouch
的引用:
触摸对象会在整个多触摸序列中持续存在。决不
处理事件时保留触摸对象。如果你需要保持
有关从一个触摸阶段到另一个触摸阶段的触摸的信息,请将其复制
信息来自触摸。
接下来是Event Handling Guide for UIKit Apps中的另一个:
清单9-1显示了TouchableView类的主要实现
及其触摸处理方法。每种方法都会遍历
触摸并执行所需的操作。 touchViews字典
使用UITouch对象作为键来检索子视图
在屏幕上进行操作。
class TouchableView: UIView {
var touchViews = [UITouch:TouchSpotView]()
...
}
显然,他们使用
UITouch
实例作为字典键违反了自己的规则。那么这有什么用呢?是否应该保留
UITouch
实例以进行复杂的手势跟踪? 最佳答案
苹果开发商并不完美,是的,我同意他们违反自己的准则。类似地,Apple表示您不应该继承集合视图的子类,但是我之前这样做是为了添加一些次要的实用程序函数,而没有不利影响。我想说这应该放在类似的类别中“不要做”。如果他们说不要这样做,则后果自负。但是实际上,既然创建代理NSTouch记录是如此容易,那么为什么不这样做呢?由于类似的原因,我最终将我的collection view实用程序功能“分解”到另一个实用程序类中,只是因为我肛门肛门并且想确保自己安全;)
关于ios - 保留UITouch:允许还是不允许?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45067293/