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

标签 objective-c ios xcode uiview catiledlayer

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

我不想缩放正在绘制的形状。所以使用缩放转换是不可能的。

我很好奇 MapView 是如何实现这个功能的。有人有什么想法吗?

最佳答案

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

我建议不要将它放在 ScrollView 的内容 View 中 - 要么直接是 ScrollView 的 subview ,要么是 ScrollView 的兄弟 View 并显示在它上面。

另一种选择是作用于滚动委托(delegate)和缩放委托(delegate)方法来调整/替换标记,使其看起来没有移动。可能需要更多工作,但可能会有好处。

关于objective-c - 如何使用 UIScrollView 和 CATiledLayer 在可缩放的 UIView 上绘制标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754579/

相关文章:

ios - Storyboard以反向预览显示 View Controller (Xcode 8.3.2)

objective-c - 从 NSURL 实例变量创建 NSURL - 无效指针

ios - 从 jSON 数组中获取值 - Objective C

ios - 方法标题中的URL时解析错误

ios - 填充 TableView 单元格

iphone - 从表格单元格及其详细信息披露按钮中提取 Storyboard

ios - 用户删除应用程序时触发注销用户的方法 - iPad 应用程序

ios - Swift 3 迁移后无法在调试器中查看变量值

ios - 带有通知问题的 Swift 暂停和重新创建计时器

ios - 点击时如何使 UICollectionView 居中?