我有一个CATiledLayer,用于显示PDF页面(此CATiledLayer是我的UIView的层类型,它是UIScrollView的子视图)。我想在此页面上添加叠加标记。因此,我在CATiledLayer中添加了一个子层。该子层再次承载不同标记的层,并充当分组层。

因此,以图形方式显示,我有:(请记住,我有多个标记也是CALayers,毕竟这是ascii艺术)

pdf page (CATiledLayer)
----------------------
|  CALayer           |
|  +---------+       |
|  |  +----+ |       |
|  |  |mker| |       |
|  |  +----+ |       |
|  +---------+       |
|                    |
----------------------


在我看来,我已经建立了规范的drawLayer:inContext:来绘制pdf。

当我缩放以获取更多细节时,pdf会正确呈现,但标记会缩放。无论我对CALayer的范围做什么,我的标记始终会变大并出现锯齿。

我希望标记始终具有相同的大小,就像它们初始化时一样,绘制视图时首先显示它们。这可能吗 ?还是我使用了错误的方法?我应该在drawLAyer:inContext:message中为包含的CALayer进行特殊绘制吗?

如您所见,解决我的问题我缺少一些东西。感谢您提供的任何帮助。

最佳答案

标记正在缩放,因为它继承了超层的变换。创建另一个包含标记和您不想缩放的其他对象的顶级CALayer,并将其覆盖在CATiledLayer的顶部。

关于iphone - 如何防止CATiledLayer的子图层CALayer在缩放后更改其比例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2985763/

10-16 04:27