我有一个用于显示 PDF 页面的 CATiledLayer(此 CATiledLayer 是我的 UIView 的图层类型,它是 UIScrollView 的 subview )。我想在此页面上添加覆盖标记。因此,我将一个子层添加到我的 CATiledLayer 中。该子层再次托管不同标记的层并充当分组层。
从图形上看,我有:(请记住,我有多个标记,它们也是 CALayers,这毕竟是 ascii 艺术)
pdf page (CATiledLayer)
----------------------
| CALayer |
| +---------+ |
| | +----+ | |
| | |mker| | |
| | +----+ | |
| +---------+ |
| |
----------------------
我已经在我的 View 中设置了规范的drawLayer:inContext:来绘制pdf。
当我缩放以获得更多细节时,pdf 会正确渲染,但标记会缩放。无论我对 CALayer 的边界做什么,我的标记总是会变得更大并且呈现锯齿状。
我希望标记始终具有相同的大小,就像它们在绘制 View 时初始化和首次显示时一样。这可能吗 ?或者我使用了错误的方法?我应该在 drawLAyer:inContext: 消息中为我包含的 CALayer 进行特殊绘制吗?
如您所见,我缺少一些东西来解决我的问题。感谢您提供的任何帮助。
最佳答案
标记正在缩放,因为它继承了 super 层的变换。创建另一个顶级 CALayer
,其中包含您不希望缩放的标记和其他对象,并将其覆盖在 CATiledLayer
之上。
关于iphone - 如何防止 CALayer(CATiledLayer 的子层)在缩放后更改其比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2985763/