1

我试图弄清楚如何最好地在 iphone 应用程序中完成绘制场景。情况如下:

  • 我有一个我想绘制的单一视图
  • 我想要一张背景图片
  • 我想在背景上绘制几个不同的图像,每个图像都应用了单独的变换(旋转、缩放)
  • 我也想在背景图像上绘制几块文本 - 我需要对这些文本进行分词并对其进行转换(旋转、缩放)
  • 我想在屏幕上绘制这些图像和文本块的动画(我不需要在第一次迭代中这样做,但我不想选择一条阻止我将来这样做的路径。

我不太确定从哪里开始——但因为动画并没有太多,所以看起来这并不一定是真正的高性能,所以我认为 Quartz 将是要走的路。

我能想到的一些可能的解决方案:

  • 使用石英:将背景绘制到视图的 cgcontext。创建几个 CGLayer 并将文本/图像绘制到它们。转换 CGlayers(你能做到吗?)然后将图层绘制到主 CGContext。

  • 使用 OpenGL:请不要。除非我真的需要。

想法?

谢谢。

4

2 回答 2

1

基本上同意马可的观点。CA 非常适合这项工作。设置一个视图并添加一堆图层。

不过有几点。

您可以使用 NSString UIStringDrawing 类别方法直接绘制文本。效果很好,没有 UILabel 的开销。

使用 CoreGraphics 绘图并不会太慢,因为 CoreAnimation 会智能地缓存图层。也就是说,它只绘制一次,然后 CA 为副本设置动画,除非图层被发送setNeedsDisplay消息。

于 2009-07-07T23:56:41.790 回答
1

将 CoreAnimationCALayers用于图像(您可以对其应用转换)和UILabels文本。使用 CoreGraphics 绘图对于动画来说太慢了。

于 2009-07-07T21:42:50.187 回答