【发布时间】:2013-04-04 03:51:00
【问题描述】:
所以我有一个字典对象的 NSArray,其中包含一堆 JSON 数据。使用该数据,我用一堆 MKPointAnnotations 填充地图,每个都代表给定字典中的数据。当用户点击其中一个注释点时,我如何才能确定点击了哪个点,以便将正确的数据集与该点相关联?
【问题讨论】:
标签: iphone ios objective-c xcode mapkit
所以我有一个字典对象的 NSArray,其中包含一堆 JSON 数据。使用该数据,我用一堆 MKPointAnnotations 填充地图,每个都代表给定字典中的数据。当用户点击其中一个注释点时,我如何才能确定点击了哪个点,以便将正确的数据集与该点相关联?
【问题讨论】:
标签: iphone ios objective-c xcode mapkit
您需要创建自己的注释类,以便在每个注释中存储附加信息。在这里查看我的答案:
https://stackoverflow.com/a/15554322/341994
注意那里提供的链接!我的书深入讨论了这一点:
http://www.apeth.com/iOSBook/ch34.html#_annotations
您可以下载一个开发此概念的工作项目:
https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ch34p848map/p707p723map
【讨论】:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 方法被调用时,我将如何获取该类的实例?
我认为这个委托方法会帮助你做到这一点。
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"Tapped on: %@", view.annotation.title);
}
您还可以在每个注释上设置标签,并使用view.tag 在calloutAccessoryControlTapped 委托内检查。
更多详情请咨询MKMapViewDelegate
【讨论】: