如何向 MkMapView 自定义注释的副标题添加按钮?

Posted

技术标签:

【中文标题】如何向 MkMapView 自定义注释的副标题添加按钮?【英文标题】:How do I add a button to the subtitle of an MkMapView custom annotation? 【发布时间】:2010-05-18 22:11:46 【问题描述】:

基本上,我的程序会在地图上显示许多注释。用户点击一个后,它会显示该位置的标题。如何在标题下添加一个按钮,该按钮将显示一个新窗口,其中包含有关该位置的更多信息?我也会满足于屏幕底部的一个按钮,该按钮在选择一个位置之前是灰色的。

【问题讨论】:

【参考方案1】:

在viewForAnnotation方法中,设置一个按钮为callout附件视图:

annotationView.canShowCallout = YES;
UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annotationView.rightCalloutAccessoryView = button;

您可以使用 rightCalloutAccessoryView 或 leftCalloutAccessoryView 但documentation 建议在右侧放置一个披露按钮。

在calloutAccessoryControlTapped 方法中响应按钮按下。

【讨论】:

我是新手,所以当我问这个 viewForAnnotation 方法到底在哪里时,请原谅我。我有三个用于主视图的 .h/.m 文件:AnnotationView、Annotation 和 MainViewController。我应该把它放在哪个文件下? viewForAnnotation 是您在实现 MKMapViewDelegate 协议的类中实现的方法。我假设你这将是 MainViewController。我建议查看 Apple 示例应用 MapCallouts。在那里,viewForAnnotation 的实现与我给出的示例类似(参见 MapViewController.m)。我的答案中的文档链接有一个指向 MapCallouts 的链接,或者您可以在 apple.com 上搜索它。

以上是关于如何向 MkMapView 自定义注释的副标题添加按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MKMapView 上添加的自定义注解中添加标题和副标题?

将自定义位置点添加到 MKMapView

向 MKMapView 添加注释的最佳方法

如何在地图视图中添加自定义标注视图

添加自定义注释引脚

添加注释后选择带有自定义标注的 MKMarkerAnnotationView