通过按同一个按钮来打开/关闭 MapKit 叠加?

2024-03-29

我有一个带有工具栏按钮的 MapView,按下该按钮时会向 MapView 添加叠加层。我想要的是按钮(IBAction)检查地图上是否已经有覆盖物,如果有,则删除,如果没有,则添加它们。

我当前添加叠加层的代码如下:

- (IBAction)waterWaysAction:(id)sender 
{
NSLog(@"WaterWays pushed");

if ([mapView overlays]) {
    [mapView removeOverlays:[mapView overlays]];
    NSLog(@"WaterWays removed");
} else {
// ******* adds the overlays for the waterways **********
// inner harbor
CLLocationCoordinate2D  innerHarborPoints[13] = {
    CLLocationCoordinate2DMake(43.02313691051886, -87.90539558418189),
    CLLocationCoordinate2DMake(43.0213450482963, -87.90596442438722),
    CLLocationCoordinate2DMake(43.01721422337822, -87.90249007832719),
    CLLocationCoordinate2DMake(43.0141641230024, -87.90402523886414),
    CLLocationCoordinate2DMake(43.00858391833174, -87.8971780500095),
    CLLocationCoordinate2DMake(43.016711699807, -87.90156448365555),
    CLLocationCoordinate2DMake(43.01692320142091, -87.90093306118753),
    CLLocationCoordinate2DMake(43.02204743639911, -87.90385746629964),
    CLLocationCoordinate2DMake(43.02400128319255, -87.90186558765494),
    CLLocationCoordinate2DMake(43.02441284233703, -87.89897827382163),
    CLLocationCoordinate2DMake(43.02564995691736, -87.89925323299293),
    CLLocationCoordinate2DMake(43.02549123239004, -87.90378517804325),
    CLLocationCoordinate2DMake(43.02313691051886, -87.90539558418189)};
MKPolygon *innerHarborPolygon = [MKPolygon polygonWithCoordinates:innerHarborPoints count:13];
innerHarborPolygon.title = @"Inner Harbor";
[mapView addOverlay:innerHarborPolygon];
NSLog(@"WaterWays added");
}
}

此代码一次用于添加覆盖层,一次用于删除它。之后(从查看日志输出)看来功能(按钮)认为 MapView 上仍然有覆盖层,因此需要不断删除它们(即使它们不再存在)。

预先感谢您的任何帮助!


尝试检查count改为覆盖数组:

if ([[mapView overlays] count] > 0) {

无需检查count, the overlays数组可以不为零,但没有对象。

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

通过按同一个按钮来打开/关闭 MapKit 叠加? 的相关文章

  • 无需 iPhone 6 Plus 即可预览 iOS 应用程序

    我已经在 Yosemite 中使用 iPhone 6 和 Quicktime 完成了 iOS 应用程序预览 视频 但我无法在 iTunes Connect 中为 iPhone 6 上传它 而且我没有 iPhone 6 设备 有没有办法在没有
  • 在回调函数中调用目标c函数

    如何在回调函数中调用目标c函数 回调函数 static OSStatus inputRenderCallback void inRefCon AudioUnitRenderActionFlags ioActionFlags const Au
  • 与 Objective-C 的 VPN 连接

    有没有办法在 iPhone 的 Objective C 中以编程方式建立 VPN 连接 有这方面的好教程吗 有人知道吗 多谢 我认为第三方应用程序无法访问这些 API
  • iPhone SQLite页面缓存不断增长

    I use sqlite数据库用于存储 还有许多数据库事务 我的问题是 sqlite 页面缓存的内存使用量快速增长 在instruments我可以找到这条线 Graph Category Live Bytes Living Transien
  • 从 IOS 应用程序注销的完美方法是什么?

    下面的代码可以工作 但有一个错误 场景是 我首先登录进入应用程序系统 登录成功后 应用程序将设置 UserDefaults UserId 之后 我可以使用存储的 UserId 导航应用程序视图 一旦我进入设置和选项卡注销 这将清除 User
  • HTML 分页

    有没有html分页的开源项目 我正在为 iPhone 开发一个应用程序 我想在 UIWebView 上显示 HTML 文件 并且不希望用户向下滚动以查看屏幕上未显示的剩余内容 我想在第二个 UIWebView 上显示剩余的内容 我怎样才能做
  • 核心数据对多关系。它们是延迟加载吗?

    我在核心数据 适用于 iPhone 中有典型的模型 其中包含部门和员工 部门 gt gt 员工 我不想每次加载时都加载一个部门的所有员工 所以我想将员工创建为获取的属性 我想我可以定义一些像这样的谓词 employee deparmentI
  • 如何用图片替换UITableView?

    我有一个 UITableView 默认为空白 直到用户编辑并向其添加数据 我想显示一张带有说明的图像 直到用户编辑它为止 图片的大小非常适合导航栏和标签栏之间 有没有办法以编程方式执行此操作 您可以使用removeFromSuperview
  • jQuery 从选择选项切换 div

    我需要从下拉选择选项框中切换 div 我想要它类似于汇编选择 http www ryancramer com projects asmselect examples example1 html对于 jquery 但我不想列出选项标签 而是希
  • 应用程序打开时处理推送通知

    我正在运行推送通知 有用 我收到通知并使用 application didReceiveRemoteNotification 获取传入数据 然后将用户发送到必要的屏幕 问题是 如果您正在使用该应用程序并收到通知 它会跳转到目标屏幕 而不会发
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • Swift:如何减少 didupdatelocations 调用

    我想出了一些代码来打印我所在位置的地址和邮政编码 这是在 didupdatelocation 函数中完成的 我遇到的唯一问题是 didupdatelocation 函数每秒都会更新该地址 因为这电池效率非常低 所以我一直在寻找使用间隔的方法
  • 当 UITextField 已满或空时显示警报 Swift

    下面的代码中 如果 userNameTF 或 passwordTF 已满或为空 则会显示警报 IBAction func LoginBtn sender AnyObject let userName userNameTF text let
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • 个人帐户开发者之间的 Apple 开发/分发证书

    我一直在到处寻找有关处理证书的正确答案 想象一下以下帐户 Joe拥有个人 Apple 帐户 但他根本不会编码 他只是发布了该应用程序并将其称为自己的 Bob还有一个个人 Apple 帐户 Bob 是一位编码专家 Joe 付费让他开发他的第一
  • 应用内购买产品禁用“提交审核”

    基于此处提到的所有步骤http troybrant net blog 2010 01 in app purchases a full walkthrough http troybrant net blog 2010 01 in app pu
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • 填充 CoreData 创建的 sqlite 数据库

    我有一个由 CoreData 模型自动创建的 sqlite DB 但我的应用程序不会让用户能够将数据写入其中 而是我想用程序所需的所有数据预先填充它 我的问题是 CoreData 创建的 sqlite DB 具有未知的表和字段 这些表和字段
  • 为什么 iPhone 上的纹理图像需要具有二维幂?

    我正在尝试解决 iPhone 上的闪烁问题 open gl es game 我有一些没有 2 维的图像 我将用具有适当尺寸的图像替换它们 但为什么尺寸需要是 2 的幂 大多数系统 甚至许多现代显卡 需要 2 的幂纹理的原因是 mipmap

随机推荐

  • Apache 设置 000-default.conf 文件

    我确信这是一个简单的问题 我已经流浪了一台机器并设置了 LAMP IP 配置为 10 0 0 10 在我的 Windows 计算机中 我修改了主机文件并添加了一个名为 rsywx remote 的条目 从我的 Windows 机器到我的 v
  • R中的标准评估和非标准评估

    我对 dplyr 函数的参数感到困惑 并且不太清楚标准评估 SE 或非标准评估 NSE 我只想将变量传递给 dplyr arrange 但失败了 但是 传递给 dplyr select 是有效的 gt library dplyr gt li
  • width=device-width 在移动 IE 中不起作用

    我正在尝试制作一个在手机上运行良好的网站 到目前为止 我测试过的每部手机都运行良好 但装有 Windows Mobile IE 的手机除外 看来 Mobile IE 只是读取了并且没有将宽度设置为设备宽度 有人有这方面的经验或任何让网站在移
  • 使用 Django Rest Framework,如何上传文件并发送 JSON 有效负载?

    我正在尝试编写一个 Django Rest Framework API 处理程序 它可以接收文件以及 JSON 有效负载 我已将 MultiPartParser 设置为处理程序解析器 然而 我似乎无法两者兼得 如果我将有效负载与文件一起作为
  • Doxygen 注释的“使用命名空间”

    我的库的所有类都是在命名空间内定义的 当我为 Doxygen 创建主页时 我必须在注释中显式使用此命名空间以使 Doxygen 生成链接 我想对整个评论块使用类似 使用命名空间 的内容 一个例子 mainpage My Library Us
  • java.lang.IllegalStateException:getWritableDatabase 递归调用

    请帮我解决该错误 D AndroidRuntime 836 Shutting down VM W dalvikvm 836 threadid 1 thread exiting with uncaught exception group 0x
  • Vite - 静态文件不复制

    我有一个 Vue js 应用程序依赖于Vite https vitejs dev 在此应用程序中 我有两个静态文件需要复制到我的dist目录 favicon ico and manifest json My vite config js文件
  • Python MySQLdb 迭代表

    我有一个 SQL 数据库 我需要迭代表并在满足 WHERE 子句后执行操作 然后 一旦到达表的末尾 就返回到顶部并重新开始 目前我有 cursor database cursor cursor execute SELECT user id
  • 如何从特权容器访问docker主机文件系统

    不使用卷 v 我可以添加 privileged to docker run但我无法安装任意卷 因为我依赖另一个工具来创建 docker 容器 所以我的问题是如何完全访问 docker 主机文件系统 privileged true 够了吗 特
  • jQuery:如何检测元素是否未被单击?

    我想知道是否可以检测某个元素是否未被单击 这是我的代码 mpElement myFeature afterDo function This if else statement has to go inside when not clicke
  • 如何在 iOS 6.1 上正确设置 GKSession(蓝牙)

    我在让 GKSession 工作时遇到问题 下面是我的代码 当按下特定按钮时执行 GKSession session if connectButtonHasBeenPressed false NSLog connectToBluetooth
  • 仅当用户启用了 JavaScript 时才使用一些 CSS

    为了让我的网页正常降级 我有一些 CSS 只有在其相应的 JavaScript 能够运行时才应该加载它们 当且仅当浏览器启用了 JavaScript 时 加载本地 CSS 的最简单方法是什么 而且它是一个相当大的 CSS 块 所以我不想编写
  • 使用 WinHttp 发布表单

    在向服务器发布帖子之前我需要添加任何标头吗 例如 目前我正在尝试以这种方式发送请求和发布数据 LPCWSTR post L name User subject Hi message Hi if WinHttpSendRequest hReq
  • 微软图表:透明度

    我想要一个具有透明背景的图表 因此 PNG 似乎是一个不错的选择 但是当我设置透明背景时 轴标签的质量急剧下降 我该如何解决 请参阅以下代码 就目前情况而言 图表具有透明背景 正如我所希望的那样 但文本质量很差 如果我注释掉两个 Color
  • 使用 Windows 窗体在脚本终止后几分钟锁定 PowerShell ISE

    我这里有一个有趣的问题 我正在创建一个日历选择器 供我们创建帐户时使用 它工作正常并且仍在进行中 但我注意到当我在 powershell ISE 中运行脚本时 几分钟后它会锁定 我可以在此之前编辑并保存代码几分钟 事件日志中没有任何内容 我
  • ng-animate :模型更改时的动画

    我创建了一个表 用户可以在其中增加和减少值 请参阅Fiddle http jsfiddle net AnandVishnu c5p39 sample code as its not allowing me to push the link
  • 面向对象的程序员如何了解数据库驱动的编程?

    我已经使用 C 和 Java 编程一年多了 并且对面向对象编程有了很好的掌握 但是我的新副项目需要数据库驱动的模型 我正在使用 C 和 Linq 这似乎是一个非常强大的工具 但我在围绕面向对象的方法设计数据库时遇到了麻烦 我的两个主要问题是
  • 引导导航栏崩溃在计算机上工作而不是在iPhone上工作

    当我将计算机屏幕大小调整到 980 像素以下时 我的固定导航栏工作正常 一旦我的屏幕达到 979 像素或更小 导航栏折叠就会启动并完美运行 然而 当我将代码推送到 Heroku 并在 iPhone 4S 上加载该网站时 我的导航栏不仅没有折
  • 在 aws 微实例上安装 redis

    我需要在亚马逊云中安装redis 我需要它作为我的 npm 模块 kue 部署 的一部分 考虑到我对 Linux 和管理的了解并不好 任何人都可以链接我的逐步教程或解释如何做到这一点 如果您启用 Amazon Linux 上存在的 Extr
  • 通过按同一个按钮来打开/关闭 MapKit 叠加?

    我有一个带有工具栏按钮的 MapView 按下该按钮时会向 MapView 添加叠加层 我想要的是按钮 IBAction 检查地图上是否已经有覆盖物 如果有 则删除 如果没有 则添加它们 我当前添加叠加层的代码如下 IBAction wat