《iOS组件与框架——iOS SDK高级特性剖析》——第2章,第2.3节显示地图
本节书摘来自异步社区《iOS组件与框架——iOS SDK高级特性剖析》一书中的第2章,第2.3节显示地图,作者 【美】Kyle Richter , Joe Keeley,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.3 显示地图
iOS组件与框架——iOS SDK高级特性剖析
MapKit框架为iOS提供了地图用户界面功能,其中的基本类是MKMapView,它显示地图、处理用户与地图的交互以及管理标注(像大头针)和覆盖层(如线路图或突出区域)。要更深入地了解iOS中地图的工作原理,必须明白坐标系。
2.3.1 理解坐标系
在MapKit中,有两个坐标系:地图坐标系和视图坐标系。地图使用墨卡托投影,将3D世界地图投影到2D坐标系。坐标可使用经度和纬度指定。地图视图表示显示在屏幕上的地图部分,它使用标准的UIKit视图坐标,并负责决定在什么地方显示地图坐标指定的点。
2.3.2 配置和定制MKMapKit
在示例应用中,ICFMainViewController包含一个地图视图,它在地图上显示用户的位置,并允许用户滚动和缩放;在Interface Builder中,将这个地图视图配置成了标准类型。ICFMainViewController有一个分段控件,让用户能够调整地图类型。
除设置地图类型外,另一种常见的定制是设置地图显示的区域。在ICFMainViewController中,有一个名为zoomMapToFitAnnotations方法,它检查用户当前喜欢的地点,调整地图的大小和中心位置,以覆盖所有这些地点。这个方法首先设置默认的最大和最小坐标。
接下来,这个方法获取地图上所有的标注(这将在 2.4 节更详细地介绍),并找出这些标注中最大和最小的经度和纬度。
如果将参数animated:设置为YES,可以动画方式放大地图,就像放大操作是用户执行的那样;如果将它设置为NO,将瞬间放大地图,而没有动画效果。
2.3.3 响应用户交互
可给MKMapView指定委托,以便对用户与地图交互做出响应。用户与地图的交互包括平移和缩放、拖曳注释(annotation)以及用户轻按标注(callout)时进行响应。
用户平移或缩放地图时,将调用委托方法mapView:regionWillChangeAnimated:和mapView: regionDidChangeAnimated:。在示例应用中,不需要采取额外的措施来缩放地图和调整注释。然而,如果应用在地图上显示了大量信息或显示的信息随缩放等级而异,就可使用这些委托方法来删除不可见的地图注释以及添加新出现的注释。在示例应用中,这个委托方法演示了如何获取新的地图区域,这可用来查询要在地图上显示的内容。
如何在用户拖曳注释或轻按标注时做出响应,这将下一节介绍。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十一)
- [ IOS ] iOS-控制器View的创建和生命周期
- iOS开发之多图片无缝滚动组件封装与使用
- iOS开发之网络数据解析--GDataXML解析框架的使用
- iOS开发 开发者证书申请及上架流程
- IOS TableView实现省市联动
- 【IOS-COCOS2D游戏开发之二十】精灵的基础知识点总汇(位图操作/贴图更换/重排Z轴等)以及利用CCSPRITE与CCLAYERCOLOR制作简单遮盖层!
- 【IOS-COCOS2D-X 游戏开发之七】整合COCOS2DX的ANDROID项目到XCODE项目中,XCODE编写&编译代码,ANDROID导入打包运行即可!
- iOS中 蓝牙2.0详解/ios蓝牙设备详解
- IOS中通知中心(NSNotificationCenter)的使用总结
- vim常用命令(iOS)
- iOS 组件化 模块化
- iOS 逆向 越狱 砸壳 获取
- iOS swift UITextField 限制输入指定的字符 限制输入字符的长度
- ios排序算法(时间复杂度,空间复杂度,稳定性)
- IOS 视频分解图片、图片合成视频
- iOS NSNotification的使用
- 判断日期大小-ios手机返回日期格式NaN