CATiledLayer:在drawLayer中确定levelsOfDetail

时间:2010-05-12 10:37:51

标签: iphone core-animation core-graphics

我在UIScrollView中有一个CATiledLayer,一切正常。现在我想添加支持以显示三个缩放级别的不同图块。

我已将levelsOfDetail设置为3,我的磁贴大小为300 x 300.这意味着我需要提供三组磁贴(我提供PNG)以覆盖:300 x 300,600 x 600和1200 x 1200。

我的问题是内部“(void)drawLayer:(CALayer *)图层inContext:(CGContextRef)ctx”我无法确定当前正在绘制哪个levelOfDetail。我可以通过使用CGContextGetClipBoundingBox来检索当前所需的边界,并且通常这会为上述尺寸之一请求一个rect,但是在图层边缘处,图块通常较小,因此这不是一个好方法。

基本上,如果我将levelsOfDetail设置为3,我怎么知道drawLayer在被调用时是否正在请求级别1,2或3?

谢谢,

罗素。

1 个答案:

答案 0 :(得分:2)

我最终解决了这个问题。

从图形上下文获取CTM并查看其比例(例如a元素)。

    CGAffineTransform transform = CGContextGetCTM (ctx);

    transform.a holds the zoom