由于各种原因,我正在考虑自己实现CATiledLayer。我做了一些调查,但我似乎无法弄清楚CATiledLayer如何知道要提供哪个磁贴。 例如,滚动图层时,永远不会调用setPosition:或setBounds :.它看起来像后台线程只是调用drawLayer:inContext:委托的蓝色,没有任何触发器。 我发现CATiledLayer使用“CAImageProvider”实例调用setContent:并且对drawLayer:inContext的所有调用都来自该类。所以可能一个是确定要绘制的图块的关键。但我找不到该课程的任何文件。
所以...有人知道这是如何工作的,以及我如何能够覆盖它?
至于CATiledLayer的缺点:
答案 0 :(得分:1)
在drawLayer:inContext:
中,您可以使用CGContextGetClipBoundingBox
获取边界框。 CGContextGetCTM
应该为您提供有关当前解决方案的信息。