iOS7应用开发14、MapKit框架

简介: MapKit Framework的基本概念: MapKit Framework提供了可以将地图直接嵌入到窗口和视图中的功能,同时还提供了地图标注、添加弹窗显示、进行反地理信息编码以通过地标信息查找经纬度坐标等功能。

MapKit Framework的基本概念:

MapKit Framework提供了可以将地图直接嵌入到窗口和视图中的功能,同时还提供了地图标注、添加弹窗显示、进行反地理信息编码以通过地标信息查找经纬度坐标等功能。

MKMapView类显示了一个地图视图,其中有一个位置指示器(annotation)提示了当前的位置坐标以及说明。可以利用该类实例显示地图信息并根据应用提供的数据改变地图的内容,如将地图的某个坐标点置于视图中心点、指定地图显示的大小区域和根据自定义信息创建标记点等。

MKMapView的使用方法:

1、使用alloc/init方法创建实例;在初始化时,需要定义地图初始显示的区域,该区域通过该类的region属性设置:

@property(nonatomic) MKCoordinateRegion region
除此之外还可以设置scrollEnabled和zoomEnabled来设置是否支持地图的滑动和缩放操作。

在实际使用中,不应派生MKMapView的子类,最好通过设置代理对象获取MKMapView实例的信息。MKMapView实例通过调用代理对象的方法知会map状态的变化和定位自定义标记点信息。代理对象可以是应用中的任何一个对象(只要符合<MKMapViewDelegate>协议)。

2、存在一个NSArray类型的属性annotation,保存MKAnnotation对象,其中的对象必须符合<MKAnnotation>协议;此属性为只读;

在实际应用过程中,MKAnnotation通常由app的data model中存在的类实现;每一个MKAnnotation对象包含定位点的位置以及可以在地图上显示的附加信息组成。

对于每一个MKAnnotation对象的显示过程,由MKAnnotationView完成。

MKAnnotationView:该类专门用于在map视图中显示定位点信息;当定位点MKAnnotation对象的坐标处于当前可见区域时,map视图请求代理对象提供相应的定位点信息以显示视图MKAnnotationView,最简单的方法是设置其image属性:

@property (nonatomic, retain) UIImage *image

同TableView类似,MKAnnotationView对象也可以保存于一个队列中以便循环使用。

创建/联系MKAnnotationView和MKAnnotation对象:通过以下代理方法:

- (MKAnnotationView *)mapView:(MKMapView *)sender viewForAnnotation:(id<MKAnnotation>)annotation;
选中某一个MKAnnotationView时的响应:
- (void)mapView:(MKMapView *)sender didSelectAnnotationView:(MKAnnotationVIew *)aView;

3、实现MKAnnotation协议的方法;

该协议用于向map视图提供与定位点annotation相关的信息。在保存定位点相关信息的类中声明符合该协议后,该协议中个的方法就可以作为data source向某个定位点实例提供相关信息,如定位点的位置等。

每个符合该协议的类的实例必须定义coordinate属性,而该协议其他的方法均为可选方法。

该协议中定义的属性有:coordinate、title、subtitle等;

该协议中定义的方法有:

- (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate;//该方法将定位点的center点为newCoordinate;

目录
相关文章
|
10月前
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
626 60
|
10月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
995 4
|
移动开发 网络协议 小程序
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布
RainbowChat是一套基于开源IM即时通讯聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题。RainbowChat可能是市面上提供im即时通讯聊天源码的,唯一一款同时支持TCP、UDP两种通信协议的IM产品。与姊妹产品RainbowTalk和RainbowChat-Web 技术同源,历经考验。
17 0
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布
|
10月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
9月前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
286 66
|
6月前
|
iOS开发 开发者 Windows
uniapp云打包ios应用证书的获取方法,生成指南
打包用到的一共两个文件,一个是p12格式的私钥证书,一个是证书profile文件。其中生成p12证书的时候,按照官网的教程,是需要MAC电脑来协助做的,主要是生成一些csr文件和导出p12证书等。其实这些步骤也可以借助一些其他的工具来实现,不一定使用mac电脑,用windows电脑也可以创建。
895 0
|
10月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
238 2
|
10月前
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。
|
10月前
|
iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第39天】在苹果的生态系统中,SwiftUI框架以其声明式语法和易用性成为开发者的新宠。本文将深入SwiftUI的核心概念,通过实际案例展示如何利用这一框架快速构建用户界面,并探讨其对iOS应用开发流程的影响。
139 1
|
10月前
|
JSON 前端开发 API
探索iOS开发之旅:打造你的第一个天气应用
【10月更文挑战第36天】在这篇文章中,我们将踏上一段激动人心的旅程,一起构建属于我们自己的iOS天气应用。通过这个实战项目,你将学习到如何从零开始搭建一个iOS应用,掌握基本的用户界面设计、网络请求处理以及数据解析等核心技能。无论你是编程新手还是希望扩展你的iOS开发技能,这个项目都将为你提供宝贵的实践经验。准备好了吗?让我们开始吧!