如何使用 UIScrollView 和 CATiledLayer 在可缩放的 UIView 上绘制标记

Posted

技术标签:

【中文标题】如何使用 UIScrollView 和 CATiledLayer 在可缩放的 UIView 上绘制标记【英文标题】:How to draw markers on a zoomable UIView using UIScrollView and CATiledLayer 【发布时间】:2012-06-01 01:06:01 【问题描述】:

我想在使用 UIScrollView 和 CATiledLayer 的可缩放 UIView 上绘制标记。我目前使用的设置与 Apple 的 PhotoScroller 演示应用程序相同。我绘制形状没有问题,但我希望它们即使在缩放后也能保持在同一个位置。我可以为此使用转换矩阵吗?或者我是否必须在缩放之后或缩放期间重新绘制形状?这似乎是一项昂贵的操作。

我不想缩放我正在绘制的形状。因此无法使用缩放转换。

我很好奇 MapView 是如何实现这个功能的。有人知道吗?

【问题讨论】:

使用 CATiledLayer 作为 UIScrollView 的子视图是否有帮助。 【参考方案1】:

如果您希望“标记”不随缩放而缩放,我假设它是某种工具显示。

我建议不要将它放在滚动视图的内容视图中 - 直接是滚动视图的子视图或滚动视图的同级并显示在其上方。

另一个选项是对滚动委托和缩放委托方法进行操作,以调整/替换标记的大小,使其看起来没有移动。可能会做更多的工作,但可能会有好处。

【讨论】:

我尝试了你的最后一个选项,它奏效了。实施需要一段时间!

以上是关于如何使用 UIScrollView 和 CATiledLayer 在可缩放的 UIView 上绘制标记的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 uiscrollview 向上滚动?

如何使用 UIScrollView 和 CATiledLayer 在可缩放的 UIView 上绘制标记

如何使 UIScrollView 与自动布局和动态内容一起使用? [复制]

如何区分 UIScrollView 中的平移和滚动

如何创建 UIScrollView?

如何使用 UIScrollView 和 UIPageControl 重新创建 iOS 应用切换器