Map Kit
可以显示任何位置,
比如: 定位你的移动轨迹
就是个实时交互的地图
简单操作下, 感受它的魅力
创建个Single View Application工程
1 . ViewController.m 中导入系统的框架
#import <MapKit/MapKit.h>
因为活地图是需要位置的, so 还要用到一个框架 Core Location
#import <CoreLocation/CoreLocation.h>
2 . 声明需要用到的属性
@property (nonatomic, strong) CLLocationManager *manager;
@property (nonatomic, strong) MKMapView *mapView;
3 . 开始正题, 在viewDidLoad中
- (void)viewDidLoad {
[super viewDidLoad];
self.manager = [[CLLocationManager alloc] init];
// 设置地理位置请求,
// 需要点进Info.plist添加个名为NSLocationAlwaysUsageDescription
[self.manager requestAlwaysAuthorization];
// 地图初始化
self.mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
// 设置委托
self.mapView.delegate = self;
// 设置地图跟随位置移动
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
// 设置地图样式
self.mapView.mapType = MKMapTypeStandard;
[self.view addSubview:self.mapView];
}
代理三步走: 遵守协议-设置委托-委托方法
so 先遵守协议
@interface ViewController ()<MKMapViewDelegate>
4 . 委托方法和大头钉
#pragma mark -- 地图代理方法 --
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
userLocation.title = @"WC";
userLocation.subtitle = @"WIFI";
}
#pragma mark -- 大头钉 --
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
MKPinAnnotationView *view = (MKPinAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:@"identifier"];
if (view == nil) {
view = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"identifier"];
}
// 设置大头钉颜色
view.pinColor = MKPinAnnotationColorPurple;
// 显示subtitle和title信息
view.canShowCallout =YES;
// 大头钉动画效果出生
view.animatesDrop = YES;
return view;
}
编译运行,
瞬间畅游世界
over