【问题标题】:UIScrollView map with pins that stay at a fixed size?UIScrollView 地图的引脚保持固定大小?
【发布时间】:2010-03-10 13:37:24
【问题描述】:

在我的应用程序中,我有一个显示地图(只是 jpeg)的 ScrollView。 在 ScrollView 之上,我添加了一些引脚(UIImageView) 到目前为止一切顺利。

但是当我放大时,图钉也会变大。 我希望图钉保持固定大小,就像 iPhone 上的谷歌地图应用程序上的图钉一样。

我该如何解决这个问题?

谢谢!

【问题讨论】:

标签: iphone uiscrollview


【解决方案1】:

我已经研究了几天,我得出的结论是目前没有很好的方法来做到这一点。

首先,将您的图钉作为 UIScrollView 的直接子视图。现在它们将保持相同的大小,但在您缩放时会四处移动。

在 OS 版本 >=3.2 中的 UIScrollViewDelegate 中有 -scrollViewDidZoom:,您可以在其中将引脚更新到正确的坐标,因为它滚动,效果很好。但在 3.1 中,我们不走运。我尝试让 NSTimer 去更新坐标,但它在设备上性能不佳。

作为后备,我所做的是在缩放开始时隐藏引脚 (viewForZoomingInScrollView) 并在缩放结束时 (scrollViewDidEndZooming) 更新它们的坐标并取消隐藏它们。

【讨论】:

    【解决方案2】:

    制作一个与地图大小相同的容器 UIView。将地图添加到 UIView 并自动调整宽度和高度。将所有引脚添加为单独的图像,每个图像都有灵活的边距。使用容器作为缩放视图。

    如果系统自动调整大小不保留边距比率,那么您可以在自定义容器视图中实现 layoutSubviews。

    【讨论】:

    • 我这样做了,我的容器的所有子视图都已调整大小。不完美,因为我希望我的别针的位置保持不变,因为它的大小看起来相同。用你的方式,框架很好,但尺寸也变了……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 2018-02-05
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多