美文网首页与时俱进的IT
UI(三十五)地图

UI(三十五)地图

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-30 18:04 被阅读0次

    地图:导入 #import

     1、介绍

     (1)导入框架 MapKit->MKMapView所有与地图相关的都是以“MK”开头

     (2)使用地图功能也需要使用定位服务(也需要开启定位服务、向用户申请授权)->需要一个CLLocation的对象向用户请求授权

     (3)功能

     《1》展示地图

     《2》展示用户所在的位置

     《3》添加标记(大头针、展示大头针上的内容)

     (4)IOS9.0之后改变(面试题)

     《1》可以显示交通情况

     《2》可以显示地图比例

     《3》可以显示罗盘

     2、使用

     (1)使用到的类

     《1》MKMapView:创建地图对象的类

     《2》MKUserLocation:显示用户大头针资料(大头针的数据模型 大头针上显示的内容是根据数据模型来决定的)

     《3》MKAnnotation:大头针数据资料 所有大头针模型的一个父类 不能直接使用 都是使用系统提供的子类、或者自定义大头针模型

     《4》MKPointAnnotation:大头针模型

     《5》MKAnnotationView:所有大头针控件的父类 可以直接使用

     《6》MKPinAnnotationView:大头针视图控件

     《7》MKCoordinateSpan:经纬度的跨度(比例,跨度越小显示的范围越小越精准)

     《8》MKCoordinateRegion:经纬度的范围

     设置用户所在位置的一个范围

     @property (nonatomic) MKCoordinateRegion region;

     - (void)setRegion:(MKCoordinateRegion)region animated:(BOOL)animated;

     设置用户在地图上为中心点、以用户的位置为地图的中心点

     - (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated

     设置地图样式 mapType :

     MKMapTypeStandard,标准

     MKMapTypeSatellite,卫星地图

     MKMapTypeHybrid,鸟瞰 混合

     ios9之后新增加的:

     MKMapTypeSatelliteFlyover,卫星地图的立体样式

     MKMapTypeHybridFlyover,鸟瞰地图的立体样式

     显示用户位置 showsUserLocation

     *使用地图显示用户位置的时候无法定位用户位置

     1、showsUserLocation未设置成YES

     2、未创建定位对象,向用户请求授权

     3、使用定位服务目的的描述与发送的请求不匹配或者未在iofo.plist中添加定位服务目的的描述

     4、用户未在设置里面开启定位服务

     设置跟踪用户的样式 userTrackingMode

    MKUserTrackingModeNone 不跟踪

    MKUserTrackingModeFollow 跟踪

    MKUserTrackingModeFollowWithHeading 跟踪并且伴随航向

     BOOL类型的属性:

    pitchEnabled 设置是否可以捏合

    rotateEnabled 设置是否可以旋转

    scrollEnabled 设置是否可以滚动

    zoomEnabled 设置是否可以缩放

     显示建筑物 showsBuildings 在标准效果下才有效

     显示热门点 showsPointsOfInterest 在标准和鸟瞰效果下有效

     显示标尺(比例)showsScale

     显示交通状态 showsTraffic

     显示罗盘 showsCompass

     地图重要的代理方法:

     //更新用户位置时调用

     - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

     //地图范围将要发生改变时调用

     - (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;

     //地图范围已经改变完成调用

     - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated

    //点击大头针触发

    - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView*)view{

    }

    相关文章

      网友评论

        本文标题:UI(三十五)地图

        本文链接:https://www.haomeiwen.com/subject/octqvftx.html