如何在 MKMapView 中的 MKAnnotation 上设置图像

2023-11-30

我正在开发一个聊天应用程序,我必须在地图上显示所有朋友及其图像。 请提供实施指导。

我使用了以下代码...

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

MKPinAnnotationView *annView = [[MKPinAnnotationView alloc]init]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Done.png"]];

annView.animatesDrop = TRUE;
annView.canShowCallout = YES;
annView.calloutOffset = CGPointMake(-5, 5);
[annView addSubview:imageView];
return annView;
 }

Thanks


enter image description here

您做错的事情是您返回 MKPinAnnotationView 类的对象,该对象用于显示引脚注释。

您应该使用 MKAnnotationView 类的对象。然后,通过更改其图像来自定义它:

annotationView.image = [UIImage imageNamed:@"friend_image.png"];

现在,您可以获取朋友的照片,而不是默认的图钉图像。

下面是解决您的问题的完整代码:

  - (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
    {
        static NSString *annotationViewReuseIdentifier = @"annotationViewReuseIdentifier";

        MKAnnotationView *annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:annotationViewReuseIdentifier];

        if (annotationView == nil)
        {
            annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationViewReuseIdentifier] autorelease];
        }

        // here you can assign your friend's image    
        annotationView.image = [UIImage imageNamed:@"friend_image.png"];
        annotationView.annotation = annotation;

        // add below line of code to enable selection on annotation view
        annotationView.canShowCallout = YES

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

如何在 MKMapView 中的 MKAnnotation 上设置图像 的相关文章

  • Swift 3 '[UIApplicationLaunchOptionsKey:任意]?'无法转换为 '[String : NSString]'

    我有一个 TVOS 应用程序已从 Swift 2 转换为 Swift 3 但出现以下错误 我不确定如何让它安静下来 UIApplicationLaunchOptionsKey 任意 无法转换为 String NSString 它出现在这段代
  • 如何保存 1 个 xcode 项目中的所有构建设置并在其他 xcode 项目上使用它们?

    我使用 xcode 4 5 和 cordova phonegap 来构建我的应用程序 我投入了大量时间来获取适合我的 Xcode 项目的构建设置 并且我想在我正在构建的多个应用程序上重用这些设置 我正在寻找是否有一种快速的方法来导出这些设置
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • iOS Swift 检测键盘事件

    我能以某种方式检测来自 iOS 键盘的事件吗 我想检测此类事件UIViewController哪个没有UITextField或任何此类物体 我只有四个圆圈UIView我想在按下键盘上的按钮时将它们涂成不同的颜色 您没有任何对象可以从键盘获取
  • 使用 UIActionSheet 更改视图时工具栏项目消失

    当从 a 启动视图时UIActionSheet按钮 通过导航栏后退按钮返回视图后 工具栏虽然仍然可见 但上面没有任何以前的按钮 自从更新到 iOS 6 以来 这个错误就出现了 并且是在模拟器和仅运行 iOS 6 的设备上测试时发生的 如果我
  • iOS 外部附件框架:如何获取特定 MFI 设备的协议字符串

    我正在编写一个 iOS 应用程序 用于与 mini mPlay Drumi MP18B 小型蓝牙扬声器 进行通信 据我所知 showBluetoothAccessoryPickerWithNameFilter仅显示协议字符串添加到 Info
  • 在 Interface Builder 中的资产目录上使用图像

    是否可以直接在界面生成器上使用添加到资产目录中的图像 这是怎么做到的 在 UIImageView 属性上 我看不到任何引用资产目录上任何图像的选项 Import the images into the xcassets folder 单击右
  • Swift:从自定义 UITableViewCell 中的 UITextField 检索文本并将其放入数组中

    我正在制作一个非常简单的应用程序 用户在第一个屏幕中输入人数 在第二个屏幕中 它会生成一些UITableViewCell基于用户在第一个屏幕中输入的数字 这UITableViewCell have a UITextField在其中 一旦用户
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • 更改 UITextField 辅助功能描述

    有没有办法将 UITextField 的辅助功能标签设置为 文本字段 之外的其他内容 因此 我不想将其称为 文本字段 而是将其命名为 代码验证字段 我的建议是不要试图在内置语音输出上智取系统 对于盲人用户来说 文本字段正在编辑 相当于 该项
  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828
  • 在模拟器中运行应用程序时删除本地通知的 iOS 权限警报

    我正在尝试编写验收测试KIF https github com kif framework KIF在一个很早就要求本地通知权限的应用程序上 不幸的是 由于 iOS 模拟器安全原因无法使用 KIF 自动接受 iOS 权限警报 https gi
  • SecItemAdd 创建两个身份

    我正在为 iPhone 开发一个应用程序 需要证书来调用某些服务 因此我将证书添加到我的钥匙串中 执行以下操作 SecCertificateRef cert SecCertificateCreateWithData NULL bridge
  • 如何在 EKRecurrenceRule 中设置一周中某一天的数组?

    我想在用户选择的特定日期每周添加事件 可以是一个或多个 也可以是一整天 我将用户选择的日期值存储在模型类变量中 但是 当我添加事件并选择日期时 假设今天是星期一 我选择星期二和星期三并保存 然后我查看周一和周三添加的 iPhone 日历 我
  • 通过 iPhone 连接到 AT&T 无线网络的谷歌静态地图无法工作 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 最近 当我的 iPhone 连接到 AT T 无线网络时 我在检索静态地图时遇到了问题 但是 当我连接到本地 WiFi 时工作正常 上周日停止工作了几
  • 具有多种自定义单元格类型的 RxSwift 表视图

    我想知道是否有任何代码示例RxSwift当我可以在一个表视图中使用多个自定义单元格时 例如 我有两个部分 第一部分有 10 个单元格 类型为CellWithImage标识符和第二部分有 10 个带有类型的单元格CellWithVideo标识
  • 为什么 GDB 调试器不断冻结 Xcode 4?

    这真是一个奇怪的错误 我正在开发一个使用相机源的 iPhone 项目 并通过 OpenGL 着色器运行它以对其应用效果 然而 每次我在代码中简单地创建一个新的 GLfloat 时 调试器都会在启动时冻结 我无法复制和粘贴文本 因为整个 XC
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 播放(非库)Apple Music 内容 - 请求失败

    我正在尝试使用以下代码播放专辑 let predicate MPMediaPropertyPredicate value 1459938538 forProperty MPMediaItemPropertyAlbumPersistentID
  • iOS 对 Google 云消息传递的支持

    我在谷歌的开发者控制台中看到 GCM 允许为 iOS 生成 API 密钥 我在网上搜索了有关如何在 iOS 应用程序中通过 GCM 实现推送通知的任何类型的文档 但没有找到答案 真的有可能在 iOS 应用程序中使用 GCM 实现推送通知 j

随机推荐

  • 解释一下 phi 系数函数在 Eloquent Javascript 中是如何工作的?

    我目前正在阅读 Eloquent Javascript 到目前为止 这是一本很好的书 但我一直停留在他提出的这个用于计算 phi 系数的函数上 这是代码 显然有很多上下文 我无法复制 粘贴书中的所有内容 所以如果真正读过这本书的人可以向我解
  • 为什么 sysctl 在 Mac OS X 上产生 E_INVAL?

    下面是一个精简的 省略了错误 空检查 C Obj C 代码片段 它使用 sysctl 获取 PID 50 的特定进程的 argv int getProcessArgs 3 CTL KERN KERN PROCARGS 50 sysctl g
  • 如何自动赋予新用户系统用户角色并如何将其显示在网站顶部?

    我对员工表进行了以下数据库设计 Username Name Job etc 还有一个角色表 RoleID RoleName 最后是一个UserRole表 用户角色ID Username RoleID 我正在为公司的部门开发一个基于 Intr
  • 将字符串中的键分配给字典

    我有一个名为sentence the sly fox jumped over the brown dog 我需要创建一个名为Positions 按键为Positions应该是中的字符sentence 这些值应该是这些字符的索引 例如 所需的
  • Ajax 用图像替换文本

    我整理了以下 mootools 脚本 window addEvent domready function var shouts timed php var log log res function updateData url target
  • Dart 支持枚举吗?

    Dart 支持枚举吗 例如 enum myFruitEnum Apple Banana 粗略搜索文档表明没有 开始1 8 您可以像这样使用枚举 enum Fruit apple banana main var a Fruit apple s
  • 在 jquery 切换功能上更改图像

    我试图在使用 jquery 切换时使用替换命令更改图像 基本上显示一个向下箭头 在内容显示后变成一个向上箭头 以下代码有效 但向下箭头未被替换 img src images arrow down png class nav toggle d
  • WPF 中的用户控件 VS 页面

    我正在编写一个简单的应用程序 它有一个菜单 当用户选择每个菜单时MenuItem 我想更改窗口的内容以显示所选内容 我有两个选择 我可以添加一个到我的窗口并写一些页面 我可以写一些UserControls并将它们放入一个ContentCon
  • Laravel 分页资源不会添加元数据

    我有以 JSON 格式返回的资源数据 当我尝试使用分页获取数据时 它不包含元数据 基于文档我的数据应该包含在元数据中 例如 meta current page 1 from 1 last page 1 path http example c
  • Terraform 中的 Elastic Beanstalk 应用程序版本

    我尝试通过参数化名称来管理 terraform 模板中的应用程序版本 这是一次尝试 每当应用程序的内容发生更改时 我们的 CI 流程都会创建一个新的应用程序版本 这样 在elasticbeanstalk中 我可以保留历史应用程序版本的列表
  • JHipster JDL 不生成任何内容,因为必须传递数据库类型

    我正在使用 Jhipster 4 5 3 从我创建的 JDL 文件生成一些代码 因为我无法生成任何东西 所以我采取了JDL 博客样本 我也有同样的问题 The JDL文档仍然提到 您可以通过运行 jhipster import jdl yo
  • 如何仅在确认对话框后翻转开关的选中状态?

    我的问题是 当我点击
  • 为什么 JavaScript 中局部变量名称优先于函数名称?

    在 JavaScript 中 您可以通过多种不同的方式定义函数 function BatmanController var BatmanController function If you want to be EVIL eval func
  • C++ 和 Objective C 之间通信的 IPC 机制

    我正在开发一个Mac应用程序 我需要在其中实现IPC机制 场景是这样的 我的应用程序包含两个可执行文件 一个是本机Mac应用程序 NSStatusItem应用程序 另一个是在CPP上编码的终端应用程序 我想在这两个进程之间建立IPC通信 我
  • 将 FontAwesome 图标添加到 D3 图表

    我正在尝试设置一个图标字体真棒而不是我的 D3 节点中的文本 这是最初的实现 带有文本 g append svg text attr x 0 attr y 4 attr class id text function d return d l
  • 监控与锁定

    何时适合使用Monitor类或lockC 中线程安全的关键字 EDIT 从目前的答案看来lock是一系列调用的简写Monitor班级 锁调用简写到底是什么意思 或者更明确地说 class LockVsMonitor private read
  • 使用http查询字符串作为数据库对象node.js/express

    尝试使用node js express mongodb 我在用着 http localhost 3000 models save model 名称 等等等等 将测试 JSON 对象传递到快速路由 models save 以保存到 mongo
  • Nodejs 在同一时间运行代码一次

    我想在特定时间运行我的流程 但只运行一次 我应该使用 cron 作业 执行然后停止作业还是使用 setTimeout 哪个更好 Update 我在node cron模块中找到了它 我认为这比使用 setTimeout 更好 另一个关于日期的
  • Sonata 管理导出字段和集合字段

    我正在尝试制作用于导出的自定义列 但我无法访问子项 有可能这样做吗 我此时的代码如下所示 public function getExportFields return ID gt id Transaction number gt trans
  • 如何在 MKMapView 中的 MKAnnotation 上设置图像

    我正在开发一个聊天应用程序 我必须在地图上显示所有朋友及其图像 请提供实施指导 我使用了以下代码 MKAnnotationView mapView MKMapView mapView viewForAnnotation id