具有动画内容的 CATiledLayer
我有这个由 CATiledLayer 支持的 UIView。目前,我的设置工作得相当顺利,但当我想在这个 CATiledLayer 上为某些视图对象设置动画时,恐怖就开始了。
我读过,我可以使用 setNeedsDisplay
强制 CATiledLayer 重绘自身。但这实际上会重绘屏幕上的所有内容。所以所有的图块都会重新加载。
当有动画发生时,我应该如何更新我的图层?让我们以以下为例:我的图层上有 6 个绿色矩形,当我按下 UIButton 时,我想将 4 号矩形的颜色更改为红色,并将矩形 1、2 和 3 重新定位在贝塞尔曲线上。
I've got this UIView which is backed by a CATiledLayer. My setup works pretty smooth at the moment but the horror starts when I want to animate certain view objects on this CATiledLayer.
I've read that I can force the CATiledLayer to redraw itself by using setNeedsDisplay
. But this actually redraws everything on the screen. So all the tiles are loaded all over again.
How should I update my layer when something is animating? Let's take the following as an example: I've got 6 green rectangles on my layer and when I press a UIButton I'd like to change the color of rectangle number 4 to red and reposition rectangle 1 2 and 3 on a bezier curve.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 CATiledView:setNeedsDisplayInRect: 只绘制图层的一部分。
在你的情况下,你应该:
you can use CATiledView:setNeedsDisplayInRect: to radraw only portions of the layer.
in your case you should: