iphone注释针和按钮

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

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

方法.

我想告诉我的项目appart上的注释引脚,我无法弄清楚如何.
每个引脚都有一个公开按钮,但我无法弄清楚程序将如何知道正在按下哪个引脚按钮.

最佳答案 你可以在这里使用一堆不同的技术.

例如,您可以为每个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
  }
}

或者,您可以使用注释视图的标记值.

- (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];
}

没有,这些是一个完整的解决方案,并且很难提供一个没有了解你的应用程序和设计,但它们共同的是在将它添加到地图之前更改annotationView以决定做什么委托回调发生后.我希望这能引导你走上正确的道路.

点赞