【问题标题】:MKPinAnnotationView - different actions in different PinsMKPinAnnotationView - 不同引脚的不同动作
【发布时间】:2012-03-21 20:40:08
【问题描述】:

我对 MKPinAnnotationView 有疑问。首先,我输入了引脚的坐标,然后调用 viewForAnnotation 来构建它们,并将它们添加到右键。

但我的问题是如何为这些图钉选择不同的操作?

当我在 NSLog 中查找按钮标签时,它总是为每个引脚显示 0,所以我无法使用标签。

这里是按钮的代码,如果它意味着什么:

for (int i=0;i<=[[mapview annotations]count];i++) {
    pinView.tag = i ;
    rightButton.tag=i;
}

【问题讨论】:

    标签: iphone mapkit mkpinannotationview


    【解决方案1】:

    您不需要(也不应该)使用标签。

    相反,在 action 方法中,您可以确定选择了哪个注解,然后根据该注解执行不同的逻辑。

    您甚至不需要创建自己的操作方法。当点击标注按钮时,地图视图将调用其calloutAccessoryControlTapped 委托方法,该方法为您提供对注释的引用(即view.annotation)。如果您决定使用委托方法,请从 viewForAnnotation 中删除 addTarget,然后实现委托方法。

    如果您出于某种原因想要使用自己的操作方法,您可以通过查看地图视图的selectedAnnotations 属性来确定选择了哪个注释。选定的注解将位于索引 0 处(请务必先检查数组的 count 是否不为零)。


    以上所有示例代码,请参见这个问题:
    How to keep data associated with MKAnnotation from being lost after a callout pops up and user taps disclosure button?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 2011-10-17
      相关资源
      最近更新 更多