我很好奇使用 Quarts2D 实现以下功能的“正确”方法:
我想要一个视图,并且能够在任何坐标处添加一个圆圈。一旦我添加了圆圈,它应该以预定义的速率扩展;我也想重复这个过程,如果这些扩大的圈子有一个数字。
想想导弹指挥部:
一般来说,如果我使用 SDL 或其他图形库在 C++ 中编写此代码,我会:
有一个类来代表一个“成长圈”有一个向量/数组来保存指向我创建的所有“成长圈”的指针。
每个刻度都会增加所有圆圈的直径,并且在我的渲染循环中,我将迭代列表并将适当的圆圈绘制到我的缓冲区。
然而,这似乎与我在以前的 iPhone 开发中通常使用视图的方式不太吻合。
所以我想这是一种开放式的,但是对于这样的事情有“正确”的方式吗?
它是游戏循环风格(如上所述),还是我应该UIView
为“圆圈”对象子类化并覆盖drawRect
?我想我必须通过创建一个视图并将其添加到我的主视图来添加每个圆圈?
初步调查还让我看到了对CAShapeLayer类的引用,尽管我猜这可能与实现 UIView 子类化技术大致相同。