iPhone注释引脚和按钮

标签 iphone mkmapview mkannotation mkannotationview

任何人都可以帮助我如何使用

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {

方法。

我试图告诉我的项目设备上的注释引脚,但我不知道如何做。 每个图钉都有一个公开按钮,但我不知道程序如何知道按下了哪个图钉按钮。

最佳答案

您可以在这里使用多种不同的技术。

例如,您可以为每个annotationView保留一个ivar并执行以下操作:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
  if (view == myFirstAnnotationView) {
    //do something
  }
  if (view == mySecondAnnotationView) {
    //do something
  }
  if (view == myThirdAnnotationView) {
    //do something
  }
}

或者,您可以使用注释 View 的标记值。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
  if ([view.tag isEqualToString@"one"]) {

  }
  if ([view.tag isEqualToString@"two"]) {

  }
}

或者,您可以子类化 MKAnnotationView 以向其添加一些行为。

- (void)mapView:(MKMapView *)mapView annotationView:(MyMKAnnotationViewSubclass *)view calloutAccessoryControlTapped:(UIControl *)control {
 [view doAMethodIMadeWhenISubclassed];
}

没有,这些都是一个完整的解决方案,如果没有更好地理解您的应用程序和设计,就很难提供一个解决方案,但它们的共同点是在将其添加到 map 之前更改annotationView以便决定委托(delegate)回调发生后要做什么。我希望这能引导您走上正确的道路。

关于iPhone注释引脚和按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953815/

相关文章:

ios - 如何从 NSArray 在 MKMapView 中添加坐标?

ios - Swift 3.0 更新 Pin 上的注解

ios - 如何在单击按钮期间在 ScrollView 中添加数组元素

php - 通过套接字从 iPhone 客户端连接到 PHP 服务器

iphone - iPhone的通用代码放在哪里,CLLocationManager

ios - MKMapView 一指放大缩小

iphone - 使用 GZIP 或 deflate 在 objective-c (iphone) 中压缩/解压缩 NSString

ios - MKMapView 只调用一次 didSelect 回调

iphone - MKAnnotation,简单示例

苹果手机 : Custom MKAnnotationView Callouts