如何在iPhone模拟器中测试相机?
有许多设备特定的功能,你必须在设备上测试,但没有比使用模拟器更难。只需为该设备构建一个调试目标并将其连接到计算机即可。那需要一个实际的设备动作
列表:
- 实际电话
- 相机
- 加速度计
- 真正的GPS数据
- 指南针
- 振动
- 推送通知...
-t
没有(除非他们已经在3.2中添加了一个方法,还没有检查)。
我写在调试模式下使用的替代视图。它实现相同的API并且使相同的委托回调。在我的情况下,我使它从我的测试集中返回一个随机图像。写作很琐碎。
你能分享代码吗? :) – Tudorizer 2011-02-18 14:19:03
而且,你可以让它从iSight Camera返回一个图像:) – 2011-05-04 12:40:22
需要访问摄像头的常见原因是为AppStore制作截图。
由于相机在模拟器中不可用,一个好的诀窍(我唯一知道的)就是根据您需要的尺寸调整视图大小,只是截取屏幕截图的时间。你以后会裁剪它们。
当然,你需要有更大的屏幕可用的设备。
iPad非常适合测试布局并为所有设备制作快照。 截图为iPhone6 +将不得不绷得有点(由1,078125缩放 - 没什么大不了的......)
好链接到iOS设备分辨率快速参考:http://www.iosres.com/
我需要一些测试自定义覆盖照片。叠加层需要根据图像的大小/分辨率进行调整。
我以一种类似于Stefan的建议的方式来处理这个问题,我决定编写一个“虚拟”相机响应代码。
当模拟器运行时,我执行这个虚拟代码而不是标准的“captureStillImageAsynchronouslyFromConnection”。
在这个虚拟代码中,我生成了必要分辨率的“黑色照片”,然后通过流水线将其发送为普通照片。基本上提供了一个非常快速的相机的感觉。
CGSize sz = UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) ? CGSizeMake(2448, 3264) : CGSizeMake(3264, 2448);
UIGraphicsBeginImageContextWithOptions(sz, YES, 1);
[[UIColor blackColor] setFill];
UIRectFill(CGRectMake(0, 0, sz.width, sz.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
上面的图像相当于当前大多数设备发出的8MP照片。显然要测试其他分辨率,你会改变大小。
这有点糟糕,如果您需要测试部署目标中设置的操作系统的早期版本,那么猜测您会被拧紧。 – marchinram 2010-12-15 04:03:02
降级?这就是Xcode包含一键恢复的原因。 – 2012-06-25 01:58:39
这里是说明如何降级您的设备:http://www.iclarified.com/31004/how-to-downgrade-from-ios-7-beta-to-ios-6 – knagode 2013-06-18 15:25:59