iphone - 如何防止 CALayer(CATiledLayer 的子层)在缩放后更改其比例?

标签 iphone uiscrollview zooming catiledlayer

我有一个用于显示 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/

相关文章:

ios - HighlightedTextColor 在选中 tableviewcell 时更改 UILabel 的文本颜色

javascript - 如何使用 html5 和 js 在 iphone 上获取联系人

iPhone - 线程 1 EXC_BAD_INSTRUCTION 错误,控制台中未打印任何内容

ios - iOS-如何在iOS应用程序中创建全景图?球形全景。如何使用陀螺仪位置自动捕获图像?

ios - UIScrollView 子级坐标反转

android - 当太小时,捏合缩放在 MapView 中不起作用

iOS 自定义图库

ios - UIScrollView 内的多个 UITextField 在一定数量后不可单击

javascript - 有没有办法阻止浏览器缓存滚动位置和缩放级别等值?

javascript - Google map 缩放级别功能