首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保留UITouch:是否允许?

保留UITouch:是否允许?
EN

Stack Overflow用户
提问于 2017-07-12 20:50:28
回答 2查看 180关注 0票数 1

以下是UITouch的一段引语

触摸对象在多点触摸序列中始终存在。在处理事件时,从不保留触摸对象。如果您需要将有关触摸的信息从一个触摸阶段保存到另一个触摸阶段,请从触摸中复制该信息。

这是另一个来自UIKit应用程序事件处理指南

清单9-1显示了TouchableView类的主要实现及其触摸处理方法。每个方法迭代触觉并执行所需的操作。touchViews字典使用UITouch对象作为键检索屏幕上正在操作的子视图。

代码语言:javascript
复制
class TouchableView: UIView {
    var touchViews = [UITouch:TouchSpotView]()
    ...
}

显然,他们使用UITouch实例作为字典键违反了自己的规则.

这是怎么回事?对于复杂的手势跟踪,应该保留UITouch实例吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-06 02:49:45

我向苹果提交了一份关于示例代码与UITouch文档之间不一致的错误报告。其结果是,“处理事件时永远不要保留触摸对象”的段落已从UITouch文档中删除。由于样本代码保留了UITouch对象,因此我们可以假定它是允许的。

票数 2
EN

Stack Overflow用户

发布于 2017-07-12 21:00:53

苹果的开发者并不完美,是的,我同意他们违反了自己的指导方针。类似地,Apple说您不应该使用子类集合视图,但是我以前已经这样做了,因为添加了一些小的实用程序函数,没有任何负面影响。我想说的是,这应该是一个类似的类别“不要做它”。如果他们说不要这样做,你就冒着自己的风险去做。但是实际上,既然创建代理NSTouch记录非常容易,为什么不这样做呢?出于一个类似的原因,我最终将我的集合视图实用程序函数“分解”到另一个实用程序类中,仅仅是因为我很烦躁,想确保自己是安全的;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45067293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档