★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10145799.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示地图视图MKMapView的常用代理方法。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
现在开始编写代码,创建一个地图视图,并设置地图视图的代理对象。
1 import UIKit 2 //在当前的类文件中引入所需的类库 3 import MapKit 4 //给当前的类添加一个地图视图的代理协议MKMapViewDelegate 5 class ViewController: UIViewController, MKMapViewDelegate { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 11 //初始化一个地图视图,并使地图视图的显示区域,和设备的屏幕尺寸相同 12 let mapView = MKMapView(frame: self.view.bounds) 13 //设置地图的代理对象为当前的视图控制器对象 14 mapView.delegate = self 15 //设置地图的类型为标准类型 16 mapView.mapType = MKMapType.standard 17 18 //初始化一个地理坐标,使地图加载该坐标位置上的地理信息 19 let coordinate2D = CLLocationCoordinate2D(latitude: 39.915352, longitude: 116.397105) 20 //根据地理坐标,初始化一个地理区域,并设置缩放比例 21 let region = MKCoordinateRegionMake(coordinate2D, MKCoordinateSpanMake(0.02, 0.02)) 22 //设置地图的显示区域 23 mapView.setRegion(region, animated: true) 24 25 //将地图视图添加到当前视图控制器的根视图 26 self.view.addSubview(mapView) 27 } 28 29 //1.添加一个代理方法,用来监听地图区域将要发生变化时的动作。 30 //当用户在地图上进行平移或缩放操作时,该方法会被调用。 31 func mapView(_ mapView: MKMapView, regionWillChangeAnimated animated: Bool) { 32 print("regionWillChange") 33 } 34 35 //2.添加一个代理方法,用来监听地图区域完成变化时的动作。 36 func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) { 37 print("regionDidChange") 38 } 39 40 //3.添加一个代理方法,当地图视图即将加载地图信息时,调用此方法。 41 func mapViewWillStartLoadingMap(_ mapView: MKMapView) { 42 print("mapViewWillStartLoadingMap") 43 } 44 45 //4.添加一个代理方法,当地图视图完成地图信息的加载时,调用此方法。 46 func mapViewDidFinishLoadingMap(_ mapView: MKMapView) { 47 print("mapViewDidFinishLoadingMap") 48 } 49 50 //5.添加一个代理方法,当地图视图即将渲染地图信息时,调用此方法。 51 func mapViewWillStartRenderingMap(_ mapView: MKMapView) { 52 print("mapViewWillStartRenderingMap") 53 } 54 55 //6.添加一个代理方法,当地图视图完成地图信息的渲染时,调用此方法。 56 func mapViewDidFinishRenderingMap(_ mapView: MKMapView, fullyRendered: Bool) { 57 print("mapViewDidFinishRenderingMap") 58 } 59 60 override func didReceiveMemoryWarning() { 61 super.didReceiveMemoryWarning() 62 // Dispose of any resources that can be recreated. 63 } 64 }