如何将 UIPopoverView 显示为地图视图的注释? (iPad)

2024-04-24

在 iPad 的地图应用程序上,当您点击图钉时,您会看到带有“i”的普通注释,而不是公开指示符。进一步点击“i”会显示一个像这样的弹出视图控制器。

有没有办法可以轻松实现这一目标?


首先在地图上添加注释viewForAnnotation方法,设置rightCalloutAccessoryView到一个类型的按钮,例如 UIButtonTypeDetailDisclosure (我认为默认情况下蓝色信息按钮不可用)。

按下该按钮将调用calloutAccessoryControlTapped委托方法。在此方法中,取消选择注释并显示弹出窗口。例如:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    [mapView deselectAnnotation:view.annotation animated:YES];

    YourContentViewController *ycvc = [[YourContentViewController alloc] init...
    UIPopoverController *poc = [[UIPopoverController alloc] initWithContentViewController:ycvc];
    [ycvc release];

    //hold ref to popover in an ivar
    self.annotationPopoverController = poc;

    //size as needed
    poc.popoverContentSize = CGSizeMake(320, 400);

    //show the popover next to the annotation view (pin)
    [poc presentPopoverFromRect:view.bounds inView:view 
        permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    [poc release];
}

YourContentViewController 是 UIViewController 的子类,您可以像任何其他视图控制器一样编码。地图应用程序看起来内容中有 UITableView。

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

如何将 UIPopoverView 显示为地图视图的注释? (iPad) 的相关文章

随机推荐

  • 模板赋值运算符重载之谜

    我有一个简单的结构Wrapper 通过两个模板化赋值运算符重载来区分 template
  • 将雅虎财经导入Python时遇到问题

    我已经使用 pip 从 PyPI 安装了 yahoo Finance 当我运行以下脚本时 出现导入错误 没有名为 yahoo finance 的模块 from yahoo finance import Share BlackDiamond
  • 如何为 NHibernate 制作内部映射类?

    我为我的映射创建了内部类 并在各处放置了 default lazy false 一段时间后 我决定完全懒惰并删除了此设置 突然之间 几乎所有事情都无法执行 我得到的异常是 无法执行查询 System TypeLoadException 访问
  • Sublime 的 phpstorm 配色方案

    我已经使用 phpstorm 很长时间了 现在我也在 sublime 中工作 因为它有利于快速编辑 并且速度感最好 我想要 Sublime 中 phpstorm 的默认配色方案 那是已经建起来了吗 或者我如何开始创建这样的配色方案 对于使用
  • 以编程方式关闭 Android 手机

    我们可以通过编程方式关闭 Android 手机吗 我正在使用以下代码片段 但它对我不起作用 KeyguardManager keyguardManager KeyguardManager getSystemService Activity
  • AppCompatActivity 不可分配给 Activity

    经过一年的 Android 编码 直到昨天一切都运行良好 今天 升级到 gradle 3 alpha 2 和 studio 3 build 2 后 我发现了一些非常奇怪的事情 This is the declaration of one o
  • 如何理解批处理文件?

    我之前没有使用批处理文件或 shell 脚本的经验 我需要了解相关项目中使用的批处理文件所执行的操作 有没有资源提供批处理文件命令的详尽列表以及每个命令的作用 一旦您熟悉了一般的 BAT 文件信息 使用其他用户在其他答案中发布的一些有用信息
  • 在 Swift 中,如何迭代 UITableView 中的每个单元格,然后获取其属性?

    我有一个通用的 UITableView 我想浏览每个可见的单元格 我怎样才能快速做到这一点 我目前正在我的一个项目中使用它 let cells self tableView visibleCells as Array
  • 当我使用设置数据时,Flutter firestore 会覆盖数据

    我一直在尝试将数据添加到我的 firestorm 数据库中的部分 我有一个集合 gt 文档 gt 数据字段 每当我使用 setData key value 时 它总是会覆盖文档中已有的数据 有没有办法解决 那是因为什么setData obj
  • Windows Phone 8 HttpClient Get 方法返回奇怪的结果

    我正在开发一个 Windows Phone 8 应用程序 它将一些数据发送到服务器 服务器执行该数据并返回结果 可以随时查询服务器以获取当前执行的状态 可以是正在初始化 正在运行或已完成 仅当执行处于完成状态时输出才可用 用户可以选择通过按
  • Extjs 5,数据模型关联和加载嵌套数据

    试图让这项工作 我想在两个对象模型上加载嵌套数据 Ext application name MyApp launch function Ext define MyApp model Address extend Ext data Model
  • 在javascript中读取excel是将长数字转换为指数

    我正在使用 SheetJs 读取 Excel 文件 但问题是它正在转换长数字 例如3577888990098指数般3 52E 12 这个问题并不重复 因为 文件列可以是随机的 系统不会知道哪些是数字 哪些是字符串 按字母顺序 或两者 那么如
  • 什么是 AABB - 碰撞检测?

    嗨 我正在制作一个体素游戏Java在研究我需要学习的所有不同东西时 我注意到很多游戏都使用AABB用于碰撞检测 然后我记得看到AABB在 我的世界 中也有 但是当我用谷歌搜索什么时AABB也就是说 它只是提出了其他人的代码 或者历史书上的某
  • Exchange Web 服务托管 API:访问其他用户项目

    是否可以访问除登录用户之外的其他 Exchange 帐户的文件夹和项目 我可以通过 Exchange Web 服务托管 API 执行此操作吗 是的 这是可能的 但您应该知道其他用户的密码或以某种方式获取此凭据 NetworkCredenti
  • 如何使用 @ngrx/data 自定义我的减速器?

    我正在学习使用 ngrx data 确实 使用该库我推进了很多代码 但在个性化它时我遇到了问题 我已经了解了如何将字段添加到集合中 export const entityMetadata EntityMetadataMap User add
  • iframe 不适用于 iOS(离子框架)

    我为 iOS 和 Android 开发了一个带有 ionic 框架的应用程序 安卓上没有问题 但是 尽管 iframe 在 Android 和浏览器中运行良好 但它在 iOS 设备和模拟器中没有显示任何内容 请帮我 尝试将其添加到您的 co
  • C 中浮点数的比较

    我有一个double打印为0 000000我试图将其与0 0f 不成功 为什么这里有区别呢 确定双精度数是否为零的最可靠方法是什么 确定它是否足够接近零以将其打印为0 000000精确到小数点后六位 例如 fabs d lt 0 00000
  • Google Maps API 多边形文物在缩放上显示

    我有一个使用 JS API 构建的 Google 地图 其中包含英国不同地区的多边形 在 Chrome 已测试 v58 和 v60 上 当用户使用滚轮放大或缩小时 多边形的随机伪像会卡在地图上 进一步缩放可以消除它们或显示不同的伪影 在 F
  • 在虚拟机共享目录上运行“grunt”

    将 Vagrant 与 Windows 主机和 Linux 客户机一起使用 grunt尝试运行作业时返回以下错误 据我了解 在主机 来宾共享目录中 此文件路径超出了 Windows 的 255 个字符限制 npm ERR Error EPE
  • 如何将 UIPopoverView 显示为地图视图的注释? (iPad)

    在 iPad 的地图应用程序上 当您点击图钉时 您会看到带有 i 的普通注释 而不是公开指示符 进一步点击 i 会显示一个像这样的弹出视图控制器 有没有办法可以轻松实现这一目标 首先在地图上添加注释viewForAnnotation方法 设