1

我有这个由 CATiledLayer 支持的 UIView。目前我的设置工作非常顺利,但是当我想在这个 CATiledLayer 上为某些视图对象设置动画时,恐怖就开始了。

我读过我可以强制 CATiledLayer 使用setNeedsDisplay. 但这实际上重绘了屏幕上的所有内容。所以所有的瓷砖都重新加载了。

当某些东西正在制作动画时,我应该如何更新我的图层?让我们以以下为例:我的图层上有 6 个绿色矩形,当我按下 UIButton 时,我想将 4 号矩形的颜色更改为红色,并将矩形 1 2 和 3 重新定位在贝塞尔曲线上。

4

1 回答 1

2

您可以使用 CATiledView:setNeedsDisplayInRect: 仅绘制图层的一部分。

在您的情况下,您应该:

  1. 用新颜色重绘 4
  2. 重绘没有矩形的 1、2 和 3 的旧位置
  3. 在 1、2 和 3 上重新绘制新位置
于 2011-06-27T11:35:50.007 回答