点击叠加时显示标注

2024-03-22

我有一个带有多个叠加层的 MKMapView。一切都很好,而且它的工作原理是如此简单,令人难以置信。然而,有一件事我无法去上班。这个想法很简单:当用户在覆盖层覆盖的区域内点击时,必须出现包含有关该覆盖层的一些信息的标注。叠加都是MKPolygons,它遵循 MKOverlay 协议,因此也遵循 MKAnnotation 协议。

MKOverlay协议符合 MKAnnotation 协议。因此, 所有覆盖对象也是 注释对象可以是 在代码中被视为其中之一或两者。 如果您选择处理覆盖对象 作为两者,你都有责任 在两个地方管理该对象。如果 您想要显示叠加层 视图和注释视图,你 必须同时实施 mapView:viewForOverlay: 和 mapView:viewForAnnotation: 中的方法 您的应用程序委托。它也是 意味着您必须添加和删除 来自覆盖层和 地图的注释数组。

这来自苹果文档。我尝试过这样的事情:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {

      MKAnnotationView *aView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
      aView.canShowCallout = YES;
}

但这似乎不起作用。我尝试过使用手势识别器,但除了使用canShowCallOut财产...


我想你还必须添加 MKOverlays 作为注释

 [self.mapView addAnnotations:myOverlays];

然后在 (mapView:viewForAnnotation) 中返回一个未隐藏的 MKAnnotationView,可以是图形(可点击)或零 Alpha 视图。接下来,为每个 MKOverlayView 添加一个 UITapGestureRecognizer,确保它可以与地图的手势配合使用(用于同时识别的 UIGestureRecognizerDelegate 实现)。最后当你的手势识别器触发时执行此操作

[self.mapView setSelectedAnnotations:[NSArray arrayWithObject:myOverlayView.overlay]];

我不确定这是否真的会触发 callOut 显示。 还要确保您从叠加对象中返回标题和/或副标题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

点击叠加时显示标注 的相关文章

随机推荐

  • 如何在 Xamarin Forms 中从 ViewModel 设置焦点

    我想要设定焦点 in a SearchBox进行一些异步操作后进行控制 我想这样做from my 视图模型 我怎样才能做到这一点 EDIT 视图模型代码 private bool searchBarFocused public bool S
  • PHP 代码不允许通过我的表单发送多个输入值

    我正在使用我构建的应用程序碰壁 我是 PHP 新手 不到 1 个月 我在导师的帮助下编写了一个非常复杂的表单 由于保密协议 我无法在此处发送完整代码作为示例 具体来说 我遇到的问题是我的表单无法将多个值发送到两个不同的输入 槽 它将向数据库
  • 是否有 GitHub 支持的 git 预告片的完整参考列表记录在某处?

    GitHub 支持一些 git 提交 预告片 尽管它没有这样称呼它们 因为instance https docs github com en pull requests committing changes to your project
  • 如何生成要展开的任务

    有人可以解释一下这两种说法之间的区别吗 Task
  • Jenkins 按标签锁定

    我想要实现的目标 I have jobA一台机器上需要 1 个执行器 I have jobB需要同一台机器上的 2 个执行器和 X 台机器上的 1 个执行器 我希望他们能够使用相同的机器 尽管不是同时 gt 他们目前使用不同的机器 他们的所
  • EF Code First 中自引用实体的映射

    在我的数据库中 我有一个表 Category 其中包含 Id CategoryName ParentCategoryId 列 其中 ParentCategoryId 对 Category Id 有约束 我首先使用实体 框架代码 其中实体如下
  • PHP mySQL - 将新记录插入到主键自动增量的表中

    想知道是否有一个速记版本可以将新记录插入到启用了主键的表中 即不必在查询中包含键列 假设键列称为 ID 其他列是 Fname Lname 和 Website query INSERT INTO myTable VALUES Fname Ln
  • Informix for .NET 的连接字符串

    我们正在使用 Informix 数据库 并使用 ODBC 从 NET 成功连接到它 我们使用的连接字符串是 DRIVER IBM INFORMIX ODBC RIVER UID username PWD password DATABASE
  • 如何为apache http客户端中的所有请求设置默认标头?

    例如 默认用户代理可以设置为 client getParams setParameter CoreProtocolPNames USER AGENT someName 但是如何设置 Accept 标头呢 HttpClient 4 3 现在允
  • Seaborn Lineplot 模块对象没有属性“Lineplot”

    使用seaborn的文档代码生成线图会返回AttributeError module 对象没有属性 lineplot 我已经更新了seaborn并重新导入了模块并再次尝试 没有运气 lineplot 退役了吗 还是有其他事情发生 impor
  • c# socket接收字节数组长度

    我正在尝试学习在 C 中使用套接字 但我有疑问 我正在使用如下代码 byte data new byte 64 int length 0 length sock Receive data more code So the byte data
  • 指定的密钥太长;最大密钥长度为 767 字节 - ASPNet Identity MySQL

    我使用 Identity 和 MySQL 创建了一个 MVC 应用程序 我已经创建了实体 但是当我创建用户表时 它失败并出现标题中指定的错误 我四处搜寻 人们都说UserName Name and Email属性太长 我已经厌倦了在这些列上
  • EOT 必须位于队列的开头吗?

    if if echo lt lt
  • Nodejs 和 Express 中的 Multer 图像上传

    几天来我一直在尝试使用 Multer 上传图像 这就是我已经走了多远 我尝试了多种方法 但似乎无法使其发挥作用 我不知道如何使用 Multer 在 createUser 函数中按如下所示的格式上传图像 我的 server js 文件 var
  • R 中的神经网络 - 为所有输入值获取相同的输出

    我正在尝试准备一个神经网络来根据两个参数 否 和 年龄 来预测产品的索赔数量 以下数据集是神经网络的输入 structure list no c 25305 4104099149 49282 7650363303 71596 1615884
  • 是否可以在 mysql 中散列整个结果集?

    是否可以将哈希函数应用于 mysql 中的整个结果集 我知道如何对结果集的每一行中的值进行哈希处理 e g SELECT md5 something 不过 假设我有一个查询 例如 SELECT FROM some table 结果集包含很多
  • 使 JTable 单元格编辑器值可选择,但不可编辑?

    我已经尽力保持我的JTable紧密且安全 仅可编辑列可通过isCellEditable 然而 我的客户坚持要求他们双击某个单元格 以便复制其内容 即使它是只读的 我可以让单元格可编辑 并且不对他们可以在setValueAt 因此当编辑器退出
  • 值等于数组中的任何值吗?

    只是想知道是否有任何方法可以检查值 A 是否等于数组中的任何值 不使用大循环函数 有点像 Where 函数 e g if DataRow column1value
  • 使用 jetpack EncryptedFile 安全性进行图像加密

    谷歌介绍安全加密jetpack库 https developer android com topic security data 我想使用这个库来加密图像文件 在库的文档中没有用于加密图像文件的示例 我将图像转换为位图 位图转换为字节数组
  • 点击叠加时显示标注

    我有一个带有多个叠加层的 MKMapView 一切都很好 而且它的工作原理是如此简单 令人难以置信 然而 有一件事我无法去上班 这个想法很简单 当用户在覆盖层覆盖的区域内点击时 必须出现包含有关该覆盖层的一些信息的标注 叠加都是MKPoly