《iOS 6核心开发手册(第4版)》——1.7节秘诀:针对位图进行测试
本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第1章,第1.7节秘诀:针对位图进行测试,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.7 秘诀:针对位图进行测试
iOS 6核心开发手册(第4版)
不幸的是,大多数视图都不属于简单的几何形状,因此不能使碰撞测试像秘诀1-5中那样直观。例如,图1-1中所示的花朵提供了不规则的界限和变化的透明度。对于复杂的艺术作品,它有助于针对位图测试触摸。位图提供了关于基于图像的视图内容的逐字节的信息,允许测试触摸是否碰到了图像的实心部分,或者是否应该穿透到下面的任何视图上。
秘诀1-6从UIImageView中提取了一幅图像位图。它假定使用的图像提供了正在处理的视图的逐像素的表示。当扭曲视图时(通常通过调整框架的大小或者应用变换),将相应地更新数学信息。可以通过CGPointApplyAffineTransform()对CGPoint执行变换,以处理缩放和旋转变化。将艺术作品与实际的视图像素保持为1:1的比例,这可以简化查找以及避免任何混乱的数学信息。可以恢复正在处理的像素,测试它的Alpha级别,以及确定触摸是否碰到了视图的实心部分。
这个示例使用截止值85,这对应于最小的Alpha级别33%(即85/255)。这个自定义的pointInside:方法把Alpha级别低于33%的任何像素都视作是透明的,这是随意而定的,可以使用适合于实际的GUI需要的任何级别(或者其他测试)。
注意:
除非需要像素完美的触摸检测,否则可以缩小位图,使之使用较小的内存,并相应地调整检测数学信息。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《OpenGL ES 3.x游戏开发(上卷)》一1.1 Android平台的特点及未来的趋势
本节书摘来异步社区《OpenGL ES 3.x游戏开发(上卷)》一书中的第1章,第1.1节,作者: 吴亚峰 责编: 张涛,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.1 Android平台的特点及未来的趋势 Android平台基于Linux,其不仅继承了Linux的各种优良特性,同时由于“Android之父”Andy Rubin的先进理念,使得Android平台又增加了许多非常具有吸引力的新特性。这不仅给终端用户带来了非凡的体验,还减轻了Android应用开发者的工作量与难度。 1.1.1 全新理念带来的体验风暴 Android是具有开源性质的手机终端解决方案,开发人员可以自由地获取以及修改相应的源代码,具体基本特性如下。 开放性。Android平台同时包括底层的操作系统、上层的用户界面和应用程序,这些全部是对开发者及厂商开放的。 应用程序平等。Android系统中任何的应用程序均是平等的,不存在传统智能手机操作系统中系统软件与应用软件的区别与障碍。即用户可以随意地替换Android系统中原有的一些应用程序,如拨号软件、短信软件以及照相机等。 快速方便的应用程序开发。An...
- 下一篇
《iOS 8应用开发入门经典(第6版)》——第2章,第2.1节使用Xcode
本节书摘来自异步社区《iOS 8应用开发入门经典(第6版)》一书中的第2章,第2.1节使用Xcode,作者 【美】John Ray(约翰 雷),更多章节内容可以访问云栖社区“异步社区”公众号查看 2.1 使用XcodeiOS 8应用开发入门经典(第6版)当您需要编写代码(实际上是输入语句让iOS设备神奇地工作)时,应考虑使用Xcode。Xcode是一种集成开发环境(IDE),让您能够管理应用程序的资源,编辑将不同部分组合起来的代码和用户界面(UI)。 按第1章的说明安装开发工具后,便可在硬盘根目录的文件夹Applications或Launchpad中找到Xcode了。本章介绍Xcode工具的基本用法,如果您还没有安装这些工具,请现在就安装。 启动Xcode。经过一段时间后,将出现如图2.1所示的Welcome to Xcode窗口。 可取消选中复选框Show this window when Xcode launches以禁止显示该窗口。第4章将详细介绍Xcode中的文档系统,它涉及的范围非常广泛。就现在而言,单击左上角的关闭按钮(X)退出欢迎屏幕。 2.1.1 创建和管理项目大多数开...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2配置默认Tomcat设置,开启更多高级功能