《iOS 6核心开发手册(第4版)》——1.11节秘诀:检测圆形
本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第1章,第1.11节 秘诀:检测圆形,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.11 秘诀:检测圆形
iOS 6核心开发手册(第4版)
在像iOS这样的直接操作界面中,可以想象大多数人只通过指向屏幕上的项目来工作。然而,圆形检测仍然是被请求次数最多的姿势之一。开发人员喜欢使人们利用他们的手指圈出屏幕上的项目。在提供读者请求的解决方案的精神指导下,秘诀1-10提供了一个相对简单的圆形检测器,如图1-5所示。
图1-5 圆点和外面的椭圆显示了检测的圆形的关键特性
在这个实现中,检测器使用一个包含多个步骤的测试。时间测试检查笔画没有停顿。圆形姿势应该快速绘制出来。还有一个折拐测试,用于检查触摸没有太频繁地改变方向。正确的圆形的起点和终点必须足够接近,使得点之间以某种方式相关。同时还需要相当大的回旋余地,因为当没有提供直接的可视化反馈时,用户倾向于未达到或超过他们开始的位置。这里使用的像素距离,接近视图大小的1/3。
最后一个测试查看围绕中心点的移动。它把经过的弧度相加起来,在完美的圆中这应该等于360°。对于尚未完成的圆形,这个示例允许45°以内的任何移动;对于更宽一点的圆形,则允许180°以内的任何移动,从而使手指能够更自然地移动。
一旦通过了这些测试,算法将产生至少一个边界矩形,并且在原始姿势中的点的几何意义上将该矩形居中显示。把这个结果赋予圆形实例变量。它不是一个完美的检测系统(在测试示例代码时,可以试试愚弄它),但它非常健壮,足以为许多iOS应用程序提供相当不错的圆形检查。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《Android应用开发》——2.1节文件
本节书摘来自异步社区《Android应用开发》一书中的第2章,第2.1节文件,作者 【美】Chris Haseman,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.1 文件Android应用开发一个手机应用的最基本形式由一个界面构成,单击设备主界面上的一个图标可以启动它。 SDK创建一个基本Android项目的同时,也创建了几个文件和重要的目录。 对于任何项目,在开始构建结构之前,重要的是至少要浏览一下蓝图。以下是构成Android项目结构的文件和目录: AndroidManifest.xml(清单文件); /res; /src。 本章的后面部分会介绍清单文件和这些目录。 清单文件AndroidManifest.xml文件是到手机其他部分的入口,描述哪个部件应该接收什么事件。在这个清单文件中也要声明此应用需要具有对哪些硬件和软件的访问许可。首先,来看看AndroidManifest.xml文件的声明。 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ha...
- 下一篇
《Android 应用测试指南》——第2章,第2.6节测试执行
本节书摘来自异步社区《Android 应用测试指南》一书中的第2章,第2.6节测试执行,作者 【阿根廷】Diego Torres Milano(迭戈 D.),更多章节内容可以访问云栖社区“异步社区”公众号查看 2.6 测试执行执行测试用例的方法有很多种,我们这里一个个地分析。 另外,我们在前面的章节中提到的注释,可以让测试用例按照组或者种类执行,这种方式要按实际需求来执行。 2.6.1 在Eclipse里执行所有的测试用例如果你采用了Elicpse作为开发环境,从Eclipse中执行测试用例可能是最简便的方式了。这种方式会执行包中所有的用例。 选择测试工程,然后单击 Run As -> Andriod Junit Test。 如果没有找到合适的设备或者模拟器,那么会自动启动一个。然后,测试用例开始执行,最后执行的结果会在Eclipse中的DDMS中展示出来。这个窗口需要手工打开,如图2.6所示。 图2.6 Eclipse中DDMS展示测试用例的执行结果 从Eclipse DDMS窗口的LogCat视图中,你可以看到更加详尽的执行过程信息和结果,如图2.7所示。 图2.7 DDMS...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Hadoop3单机部署,实现最简伪集群
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- CentOS7设置SWAP分区,小内存服务器的救世主