CATiledLayer:如何导致仅重新加载一些图块?

Posted

技术标签:

【中文标题】CATiledLayer:如何导致仅重新加载一些图块?【英文标题】:CATiledLayer: How to cause reload of just some tiles? 【发布时间】:2012-12-28 21:38:10 【问题描述】:

我在滚动视图中使用平铺层来显示自定义视图。自定义视图的内容会定期更改,并且我知道发生这些更改的矩形。但是我发现,如果我执行 setNeedsRedisplay 只会重绘一个图块。如何告诉 CATiledLayer 仅重绘受影响的图块?

【问题讨论】:

【参考方案1】:

如果您在 CATiledLayer 上调用 setNeedsDisplay,则它会重绘其所有图块。如果您改用 setNeedsDisplayInRect,它应该只重绘那些与您指定的矩形相交的图块。但请注意,它会重绘整个图块,而不仅仅是与矩形相交的部分。

请注意在绘制过程中调用 setNeedsDisplay 时 CATiledLayer 中的重绘错误。您可以在this question 找到更多信息。

【讨论】:

以上是关于CATiledLayer:如何导致仅重新加载一些图块?的主要内容,如果未能解决你的问题,请参考以下文章

CATiledLayer:示例代码

CATiledLayer 到 CALayer

ztree重新加载无效

在 UIScrollView 中拍摄 CATiledLayer 支持的视图的图像快照

在 CATiledLayer 中预加载/预显示图块?

CATiledLayer 在绘制内容之前消隐图块