MKPinAnnotationView - 不同引脚的不同动作
Posted
技术标签:
【中文标题】MKPinAnnotationView - 不同引脚的不同动作【英文标题】:MKPinAnnotationView - different actions in different Pins 【发布时间】: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;
【问题讨论】:
【参考方案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?
【讨论】:
以上是关于MKPinAnnotationView - 不同引脚的不同动作的主要内容,如果未能解决你的问题,请参考以下文章