我的第一个想法(我还没有尝试过)是使用Core Animation来做到这一点。
renderInContext:
方法将墙的图像创建为背景图层。注意:
在我提交大量代码编写本文之前,我的问题是您是否看到上述计划中存在任何陷阱,或者您是否可以建议更简单的方法来执行此操作?
答案 0 :(得分:3)
我使用UIView在iPhone上实现了放大镜。 CA太慢了。
您可以使用它的drawRect方法将CGImage绘制到UIView中。这是我的drawRect中的步骤:
您可以预先渲染CGImage,然后将其放在图形内存中。 如果你想要动态的东西,请从头开始绘制而不是绘制CGImage。
非常快,看起来很棒。
答案 1 :(得分:2)
我就是这样做的,这听起来像个好计划。
无论你选择OGL还是CA,基本原理都是一样的,所以我会坚持你更熟悉的东西。
在性能方面,您必须尝试并查看(只需确保您在实际硬件上进行测试,因为模拟器远远快于硬件)。如果它变慢,那么你可以看一下不太频繁地做2/3的步骤,例如每2-3帧。这会产生一些放大延迟,但可能完全可以接受。
我怀疑OGL / CA之间的性能大致相当。 CA建立在OGL库的顶部,但是您的成本将是实际渲染,而不是在图层中花费的时间。