《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需要的任何级别(或者其他测试)。

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


c4dda61fab57fba42b73c5d547ce54e2c8651ba5
相关文章
|
26天前
|
iOS开发
iOS自动混淆测试处理笔记
iOS自动混淆测试处理笔记
11 0
|
2月前
|
iOS开发
  iOS 自动混淆测试处理笔记
  iOS 自动混淆测试处理笔记
|
2月前
|
Java 测试技术 API
安卓APP和iOS APP在测试上的区别是什么?
安卓APP和iOS APP在测试上的区别是什么?
|
3月前
|
人工智能 测试技术 iOS开发
iOS性能指标和性能测试工具
iOS性能指标和性能测试工具
|
3月前
|
移动开发 数据安全/隐私保护 iOS开发
ios app真机测试到上架App Store详细教程-必看
ios app真机测试到上架App Store详细教程-必看
42 0
|
6月前
|
iOS开发
iOS自动混淆测试处理笔记
自动混淆测试是针对 oc 类和oc方法这两个模块进行自动混淆ipa,并ipa安装到设备中运行,通过检测运行ipa包是否崩溃,来对oc类和oc方法进行筛选。如果崩溃,则该类名或方法名不可混淆。 当没有勾选oc类和oc方法,会自动测试所有的可执行文件中的oc类和oc方法名。如果有选中数据,则只会测试选中的数据集合。除了 oc 类和oc方法这两个模块会自动筛选测,其他的模块需要手动配置
|
6月前
|
存储 数据安全/隐私保护 开发者
iOS- 最全的真机测试教程
iOS- 最全的真机测试教程
|
7月前
|
运维 网络协议 测试技术
iOS 自己搭建的IPv6环境测试正常,任然被拒
iOS 自己搭建的IPv6环境测试正常,任然被拒
48 0
|
8月前
|
测试技术 iOS开发
iOS PushMeBaby 远程推送测试
iOS PushMeBaby 远程推送测试
122 0
|
9月前
|
JavaScript 测试技术 Shell
03-MacOS上搭建Appium的iOS测试环境
03-MacOS上搭建Appium的iOS测试环境