【发布时间】:2010-12-06 15:42:11
【问题描述】:
我目前正在使用 mapkit 并且卡住了。
我有一个正在使用的自定义注释视图,我想使用 image 属性在地图上用我自己的图标显示点。我有这个工作正常。但我还想做的是覆盖默认标注视图(触摸注释图标时显示的标题/副标题的气泡)。我希望能够控制标注本身:mapkit 仅提供对左右辅助标注视图的访问,但无法为标注气泡提供自定义视图,或将其设为零大小或其他任何内容。
我的想法是覆盖我的MKMapViewDelegate 中的selectAnnotation/deselectAnnotation,然后通过调用我的自定义注释视图来绘制我自己的自定义视图。这有效,但仅当在我的自定义注释视图类中将 canShowCallout 设置为 YES 时。如果我将此设置为NO(这是我想要的,因此不会绘制默认标注气泡),则不会调用这些方法。因此,如果没有显示默认标注气泡视图,我无法知道用户是触摸了我在地图上的点(选择了它)还是触摸了不属于我的注释视图的点(选择了它)。
我尝试走一条不同的路,自己处理地图中的所有触摸事件,但我似乎无法正常工作。我阅读了与在地图视图中捕获触摸事件相关的其他帖子,但它们并不是我想要的。有没有办法在绘制之前深入地图视图以删除标注气泡?我很茫然。
有什么建议吗?我错过了什么明显的东西吗?
【问题讨论】:
-
此链接失效,但在这里找到了相同的帖子 -> Building Custom Map Annotation Callouts – Part 1
-
您可以参考此project 进行快速演示。 github.com/akshay1188/CustomAnnotation 将以上答案编译成一个运行演示。
标签: ios objective-c mapkit mkmapview mkannotationview