用户位置的自定义注释视图不移动地图视图

2024-01-08

我们可以在 iOS 中为用户当前位置提供自定义注释视图吗?

我需要用我自己的自定义视图(比如一些 ping 引脚)删除蓝点(带圆圈)。是否有可能做到这一点?

如果我们这样做,当用户位置发生变化时,该图钉是否会移动到新位置?或者我们需要以编程方式处理它?

我观察到,如果我们对用户当前位置使用默认蓝点,那么当用户位置发生变化时,它会在地图中更新。

我只是想知道这是否可以通过我们自己的自定义视图来完成。


是的,您可以为用户位置提供自定义视图。

不幸的是,实施起来比应有的要困难,因为即使viewForAnnotation 委托方法的文档 http://developer.apple.com/library/ios/#DOCUMENTATION/MapKit/Reference/MKMapViewDelegate_Protocol/MKMapViewDelegate/MKMapViewDelegate.html#//apple_ref/doc/uid/TP40008204-CH3-SW11声称如果注释类是,您可以只提供自己的视图MKUserLocation,自定义视图不会继续随用户位置移动。事实上,当返回自定义视图时MKUserLocation,地图视图完全停止更新用户位置(地图视图的didUpdateUserLocation委托方法不再触发)。我相信这是一个错误。

解决方法是使用CLLocationManager和自定义注释...


确保showsUserLocation is NO或在地图视图上取消选中。

声明属性CLLocationManager以及使用自定义类的自定义注释,该自定义类实现了MKAnnotation协议(或者你可以只使用通用的MKPointAnnotation class).

In viewDidLoad或其他一些适当的地方,创建CLLocationManager,设置其delegate并打电话startUpdatingLocation.

In the 地点经理的didUpdateToLocation委托方法 http://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManagerDelegate_Protocol/CLLocationManagerDelegate/CLLocationManagerDelegate.html#//apple_ref/doc/uid/TP40007124-CH3-SW3 (not地图视图的didUpdateUserLocation委托方法),创建或更新您的自定义注释:

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    if (myUserLocAnnot == nil)
    {
        self.myUserLocAnnot = [[[MyUserLocClass alloc] init] autorelease];
          //remove the autorelease if using ARC
        myUserLocAnnot.title = @"You are here";
        myUserLocAnnot.coordinate = newLocation.coordinate;
        [mapView addAnnotation:myUserLocAnnot];
    }
    else
    {
        myUserLocAnnot.coordinate = newLocation.coordinate;
    }
}

最后,在地图视图中viewForAnnotation委托方法中,如果注释是您的自定义用户位置注释,您将返回自定义注释视图。

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

用户位置的自定义注释视图不移动地图视图 的相关文章

  • 多次添加同一个子视图来查看

    我不知道这是否可行 但我想做的是将子视图多次添加到视图中 我尝试过这样的事情 self view addSubview newView newView center CGPointMake 160 100 self view addSubv
  • “同时创建 xib 文件”按钮已禁用

    我在创建时遇到这个问题UIView s子类 创建 例如 UIViewControllers or UITableViewCells没关系 为什么会出现这种情况 I create view using cmd N and Xcode Vers
  • iOS - NSNotificationCenter 多个UIKeyboard通知

    我有两个视图控制器 我们称它们为 A 和 B 1 在 A 中 我显示一个包含文本字段的 popOver 2 B中有一个UITextView用于简单的文本编辑 我必须管理 A 和 B 中的键盘才能滚动键盘隐藏的内容 我知道如何重新定位内容 我
  • 无法理解 Java 地图条目集

    我正在看一个 java 刽子手游戏 https github com leleah EvilHangman blob master EvilHangman java https github com leleah EvilHangman b
  • Python:在字典中查找具有唯一值的键?

    我收到一个字典作为输入 并且想要返回一个键列表 其中字典值在该字典的范围内是唯一的 我将用一个例子来澄清 假设我的输入是字典 a 构造如下 a dict a cat 1 a fish 1 a dog 2 lt unique a bat 3
  • 图像目录中矢量 pdf 的渲染模式设置为模板,但 UIImageView 不会在自定义单元格中对图像进行着色

    我已将所有图像文件迁移到资产目录中 它们都是大小为 1x 的 pdf 向量 它们被设置为呈现为模板 它们的大小和颜色在任何地方都表现得很好 但是有一个来自 xib 的自定义 TableView Cell 我有 6 个 UIImageView
  • iOS 10 的错误? NSDate 日本地区时间描述和 24 小时休息

    这似乎是 iOS 10 的一个错误 在 iOS 8 和 9 中都可以 NSDate date description 的小时描述是错误的 它附加了 24 小时描述和 12 小时描述 我没有使用 NSDateFormatter 只是默认设置
  • 如何使用 Fluent NHibernate 自动映射来映射字典?

    我有一个像这样的实体 public class Land public virtual IDictionary
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • iOS中的performSelector有什么用

    的作用是什么执行选择器 比较 self btnClicked and self performSelector selector btnClicked void btnClicked NSLog Method Called 两者都对我来说工
  • 如何请求用户开启定位服务

    我需要我的应用程序来访问用户的当前位置 它在应用程序开始时检查用户是否已设置 如果没有 我需要应用程序显示提示以使其使用位置服务 就像警报视图一样 点击按钮 它应该会带您进入 iPhone 上的位置服务屏幕 您可以通过以下代码检查 loca
  • PresentModalViewController 不执行任何操作

    我有一个 UIViewController parent 调用presentModalViewController与另一个 UIViewController child on viewDidLoad If parent没有 UINaviga
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • 如何将音乐从我的应用程序切换到 iPod

    我在用MusicPlayerController我的应用程序中的对象来播放音乐 我知道当 iPhone ipod 应用程序终止时 可以继续播放我的应用程序音乐 我该怎么做 这涉及到一些事情 您必须在两种音乐播放器之间进行选择 应用程序音乐播
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • NSPredicate 的 onFormat 字符串

    我想用 id 键对数据进行排序 我如何理解格式字符串的用途NSPredicate格式 我有一个100号的帖子 我的代码 let objectIDs posts map 0 id let predicate NSPredicate forma
  • 在 iOS 上从 GPS 获取时间

    我正在开发一个跟踪器应用程序 该应用程序需要高精度地了解设备位置 即它使用位置服务并忽略水平精度低于 20 米的位置 CLLocation没有明确声明是否通过 GPS 确定 但是 如果水平精度为 20 米或更好 则可以认为它是来自 GPS
  • 显示键盘时如何在 TextView 下方添加更多填充

    当我在 ScrollView 中有 TextField 并点击它时 键盘会按预期显示 但似乎 TextField 已向上移动到足以显示输入区域 但我希望移动到足够的位置 以便整体可见 否则它看起来像是被剪裁了的 我找不到改变这种行为的方法
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包

随机推荐

  • 通知系统设计

    我需要为我们自制的 ERP 系统设计通知系统 当不同的事情发生时 它会向用户发送通知 当前的系统很简单 如果发生了某些事情 例如 用户更改了用户个人资料中的电话号码 则会向会计师发送一封电子邮件 这里有一些缺点 如果用户更改了两次 会计师将
  • Java可扩展枚举

    有没有办法编写一个可以扩展的枚举 我希望有几种方法始终可用于我的枚举 例如 我对数据库字段使用枚举 我在数据库中包含实际的字段名称 public enum ORDERFIELDS OrderID Order ID private Strin
  • 如何在GWT中删除jsarray中的值?

    我有两个问题 1 是否可以使用 pop 方法删除 jsarray 中的任何值或仅删除最后一个值 2 如何从 jsarray 中删除或删除一个值 有人可以发布一个例子吗 这里是这样的 public JsArray
  • Gradle 任务将 Maven 存储库中的 jar 放入项目 lib 文件夹中

    http blog jonasbandi net 2014 03 running nodejs applications on jvm with html http blog jonasbandi net 2014 03 running n
  • 如何从 Android Studio 构建所有产品风格?

    我的 gradle 文件有很多风格 def versionName 1 19 def applicationId com site app productFlavors CafebazarPro applicationId applicat
  • 摆脱 ATLTRACE 输出中显示的 atlTraceGeneral 类别

    升级到 VS2013 后 我开始以 atlTraceGeneral 我的输出 格式接收所有 ATLTRACE2 消息 e g ATLTRACE T This is my data d n 124 显示为 dllmain cpp 1121 a
  • 用于记录方法调用和异常的 WCF 服务属性

    我需要记录 WCF 服务中的每个方法调用以及引发的任何异常 这导致了很多冗余代码 因为每个方法都需要包含类似于这样的样板 OperationContract public ResultBase
  • 用户点击我的 EditText 后如何执行某些操作

    我有一个EditText这显示了时间 用户点击后EditText我想展示一个TimePickerDialog 所以我设置了一个View OnClickListener to my EditText But the OnClickListen
  • git 如何跟踪远程存储库中的版本?

    我的理解是 当进行推送时 远程存储库中的代码会更新 git 实际上如何跟踪发布的版本 在 git flow 的上下文中 远程存储库是否还会随我的代码一起提取任何元数据 还是仅提取代码 我对使用 git flow 比较陌生 它更新远程跟踪分支
  • Jetpack Compose - 文本居中

    我正在使用 Jetpack Compose 创建一个简单的闪存卡 这个想法是 你点击闪存卡 它就会给你答案 但是 我陷入了一个基本问题 不幸的是 我什至找不到官方文档 所以我的学习风格一直信任自动更正系统 无论如何 我认为问题出在 Box
  • 如何正确分割这个字符串列表?

    我有一个这样的字符串列表 z 2 44 4 55 z 88 我怎样才能在列表中拆分这个字符串 使其类似于 z 2 44 4 55 z 88 我尝试过使用split然而 已经有方法将 44 分成 4 和 4 我不知道还能尝试什么 您可以使用正
  • 如何编写Linux驱动模块调用/使用另一个驱动模块?

    我正在开发一个 Linux 驱动程序可加载模块 我必须在我的驱动程序中使用另一个设备 某种驱动程序堆叠在另一个驱动程序上 如何在我的驱动程序中调用 使用其他驱动程序 我认为它们都在内核中 所以可能有一种方法可以直接使用另一个驱动程序 您将需
  • FileStream.close() 不会为其他进程释放文件

    我在 Page Load 调用的函数中有以下代码 启动 Visual Studio 后首次加载页面时 一切正常 但此后对文件的任何其他打开调用都会返回IOException File is in use by another process
  • Expo EAS:如何将eas更新分支与构建通道链接?

    我有一个带有 EAS 的 expo v 46 0 0 项目 具有以下构建配置 eas json cli version gt 1 1 0 build production channel production env APP ENV pro
  • 找不到 Flyway maven 插件

    在我的 pom xml 中 我有
  • 一般填充不同的类成员

    我正在开发一个具有多个 11 Web 服务调用的 Web 服务应用程序 对于每个 Web 服务 我需要从字符串数组填充 Soap Body 如下所示 if aMessage int DCSSCustomerUpdate V3 Branch
  • 假设浮点数在 C 中使用 IEEE754 浮点数表示是否安全?

    浮点是在 C 中定义的实现 因此没有任何保证 我们的代码需要可移植 我们正在讨论是否可以在我们的协议中使用 IEEE754 浮点 出于性能原因 如果我们在发送或接收数据时不必在定点格式之间来回转换 那就太好了 虽然我知道平台和架构之间在大小
  • Pandas Dataframe 分组和标准差

    给定一个以下格式的 pandas 数据框 GroupNo at1 at2 at3 at4 1 0 02 1 12 1 88 3 2 1 6 11 1 13 0 88 5 2 4 2 02 1 16 2 88 0 2 3 0 20 0 12
  • 中的 ListBoxItem 样式?

    我可以放一个xamlStyle for ListBoxItem in
  • 用户位置的自定义注释视图不移动地图视图

    我们可以在 iOS 中为用户当前位置提供自定义注释视图吗 我需要用我自己的自定义视图 比如一些 ping 引脚 删除蓝点 带圆圈 是否有可能做到这一点 如果我们这样做 当用户位置发生变化时 该图钉是否会移动到新位置 或者我们需要以编程方式处