如何向 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 自定义注释的副标题添加按钮?的主要内容,如果未能解决你的问题,请参考以下文章