【问题标题】:iOS - Figuring out which MKPointAnnotation was selectediOS - 找出选择了哪个 MKPointAnnotation
【发布时间】:2013-04-04 03:51:00
【问题描述】:

所以我有一个字典对象的 NSArray,其中包含一堆 JSON 数据。使用该数据,我用一堆 MKPointAnnotations 填充地图,每个都代表给定字典中的数据。当用户点击其中一个注释点时,我如何才能确定点击了哪个点,以便将正确的数据集与该点相关联?

【问题讨论】:

    标签: iphone ios objective-c xcode mapkit


    【解决方案1】:

    您需要创建自己的注释类,以便在每个注释中存储附加信息。在这里查看我的答案:

    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 方法被调用时,我将如何获取该类的实例?
    • 您没有获得实例,而是创建了它。 - 查看我在另一个答案中提供的链接。我的书包含一个完整的讨论,我提供了可下载的项目来告诉你该怎么做。
    • 知道了。我花了一秒钟才真正意识到一切是如何拼凑在一起的。非常感谢!
    【解决方案2】:

    我认为这个委托方法会帮助你做到这一点。

    - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
    {
        NSLog(@"Tapped on: %@", view.annotation.title);
    }
    

    您还可以在每个注释上设置标签,并使用view.tagcalloutAccessoryControlTapped 委托内检查。

    更多详情请咨询MKMapViewDelegate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多