【问题标题】:multiple annotation have issue to get selected index annotation多个注释无法获取选定的索引注释
【发布时间】:2012-06-30 21:01:17
【问题描述】:

我已经在我的 iphone 应用程序的 mapView 中成功显示了多个注释,但我也有问题 .. 在屏幕顶部我有两个 Tab Map 和 List 。地图显示地图中的所有注释,列表显示在地图中显示的表格视图中的那些数据。当我单击特定单元格时,我会获得该单元格的所有特定详细信息。但是当我尝试从 Tap 注释中获取 id 时,我的数组在比较名称后会得到很多 id,因为我们的数组列表中有相同的名称,所以我该如何区分来自注释标签。如何设置注释标签?

【问题讨论】:

  • 请显示您“尝试从点击的注释中获取 id”的代码。您是否在 didSelectAnnotationView 或标注附件中检测到点击?你定义了一个自定义的注解对象吗?
  • 我正在使用 calloutAccessoryControlTapped 方法来点击注释。
  • 从 annotation.title 我得到了该注释的正确 id,但是当我的数组具有与我比较的相同名称时,我得到了该注释的多个索引并且我没有得到该注释的特定细节
  • 在那个委托方法中,view.annotation 不是给你被点击的注解吗?
  • View.annotation 给了我 类型的响应。

标签: iphone objective-c mkannotationview


【解决方案1】:

calloutAccessoryControlTapped 委托方法中,使用view.annotation 访问被点击的注解。

如果您有一个自定义注释类,您可以将其转换为轻松访问属性(您可能还需要首先检查所点击的注释是否是您感兴趣的类的实例——如果您是使用多个注释类):

if ([view.annotation isKindOfClass:[TagMark class]]) {
    TagMark *tm = (TagMark *)view.annotation;
    NSLog(@"tm.someProperty = %@", tm.someProperty);
}

【讨论】:

    猜你喜欢
    • 2014-05-07
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多