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

《iOS 6核心开发手册(第4版)》——1.7节秘诀:针对位图进行测试

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

本节书摘来自异步社区《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需要的任何级别(或者其他测试)。

注意:
除非需要像素完美的触摸检测,否则可以缩小位图,使之使用较小的内存,并相应地调整检测数学信息。


c4dda61fab57fba42b73c5d547ce54e2c8651ba5
原文链接:https://yq.aliyun.com/articles/98276
关注公众号

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

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

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

文章评论

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

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章