如何在常规 UIView 之上使用 MKPinAnnotationView(而不是在地图上)
Posted
技术标签:
【中文标题】如何在常规 UIView 之上使用 MKPinAnnotationView(而不是在地图上)【英文标题】:How can I use MKPinAnnotationView on top of a regular UIView (instead of on a map) 【发布时间】:2009-07-20 15:51:58 【问题描述】:我正在编写一个包含自定义地图的 iPhone 应用程序——我自己的地图图像,而不是 Google 的。图片不是很大,所以我没有使用 RouteMe 之类的库,而是选择了一个带有嵌入图片(地图)的 UIScrollView。
我的问题是:是否可以在我的自定义 UIView 之上重新使用 Apple 的 MKPinAnnotationView 类,以便 pin 交互感觉与 MapKit 相同?到目前为止,我已经弄清楚如何在我的地图上添加一个图钉并定位它,但我不知道如何让用户与之交互——即弹出描述气泡。
有什么想法吗?非常感谢。
【问题讨论】:
您是如何将图钉添加到您的图片中的? 【参考方案1】:您也许可以制作一个并使用添加子视图来显示它,您必须做一些工作才能使其显示在您想要的位置,因为您提供的坐标适用于 mkmaps
【讨论】:
【参考方案2】:你有没有从 MKAnnotationView 看过这个方法:
(void)setSelected:(BOOL)选定动画:(BOOL)动画这是唯一公开的可以显示/隐藏标注气泡的方法。除此之外,您必须对课程进行逆向工程并开始四处寻找。
但是,我强烈建议不要对类进行逆向工程并使用未公开公开的方法。 Apple 不承诺保持向后兼容性,如果他们发现您使用的是私有方法,他们会将您的应用从商店中踢出。
顺便说一句,完全披露,这些是 Apple 的 setSelected:animated 文档说明:
讨论 你不应该调用这个方法 直接地。一个 MKMapView 对象调用 此方法响应用户 与注解的交互。
【讨论】:
以上是关于如何在常规 UIView 之上使用 MKPinAnnotationView(而不是在地图上)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITableViewController 之上添加 UIView [关闭]
如何以编程方式将自定义 UIView 添加到 UIScrollView 之上的 Stackview?