您现在的位置是:首页 > 文章详情

《iOS 6核心开发手册(第4版)》——1.12节创建自定义的姿势识别器

日期:2017-05-01点击:256

本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第1章,第1.12节创建自定义的姿势识别器,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.12 创建自定义的姿势识别器
iOS 6核心开发手册(第4版)
只需做少量的工作即可把秘诀1-10中所示的代码转换成自定义的识别器,如秘诀1-11中所介绍的那样。子类化UIGestureRecognizer将使你能够构建自己的圆形识别器,并把它添加到应用程序中的视图中。

首先把UIGestureRecognizerSubclass.h导入新类中。该文件声明了识别器子类重写或自定义所需的一切内容。对于重写的每个方法,都要确保调用该方法的原始版本,这需要在激活新代码前调用超类方法。

姿势分为两类:连续的和离散的。圆形识别器是离散的,它要么识别一个圆,要么失败。连续的姿势包括捏合和平移,其中识别器在它们的整个生命周期内发送更新。识别器是通过设置其state属性来生成更新的。

识别器基本上是指尖的状态机。所有的识别器都开始于可能的状态(UIGestureRecognizer StatePossible),然后对于连续的姿势,将经过一系列变化的状态(UIGestureRecognizerStateChanged)。离散的识别器要么成功地识别一种姿势(UIGestureRecognizerStateRecognized),要么失败(UIGestureRecognizerStateFailed),如秘诀1-11中所示。除了将状态设置为可能或失败时之外,每次更新状态时,识别器都会把动作发送给它的目标。

在秘诀1-11中看到的相当长的注释是子类头文件的礼节性的做法。我在这里包括了它们,因为它们有助于解释重写其超类的关键方法的作用。Reset方法把识别器返回到它的静止状态,允许它使自身准备好迎接下一次识别挑战。

触摸开始(等)方法是在与它们对应的UIResponder类似的位置调用的,使你能够在触摸生命周期的相同位置执行测试。在触摸结束回调之前,这个示例会一直等待,以检查成功或失败,并且使用秘诀1-10中定义的相同的testForCircle方法。

注意:
作为一种重写哲学,一旦有可能,姿势识别器就会失败。当它们成功时,应该在本地属性中存储关于姿势的信息。圆形识别器应该保存任何检测到的圆,以使用户知道姿势发生在什么位置。


939a2573a6424bd299598866db22b872f74ca030
原文链接:https://yq.aliyun.com/articles/98309
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章