十三年专注于网站建设与互联网应用开发,低调、有情怀的网络应用服务商!
南昌百恒科技微信公众号 扫一扫关注
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒科技微信公众号

IOS地图添加标注二:实现地图委托

百恒网络 2018-08-13 16:22:05 3026
       前两天我们学习了IOS地图添加标注中的触发添加动作方法,那么今天百恒网络接着为大家介绍第二个步骤:实现地图委托方法mapView:viewForAnnotation

       MKMapViewDelegate委托协议方法mapView:viewForAnnotation:的代码如下:

IOS地图添加标注二:实现地图委托一

       在上述代码中,第①行代码所示的委托方法mapView:viewForAnnotation:在地图视图添加标注时回调。给地图视图添加标注的方法是self.mapView.addAnnotation(annotation),其中annotation是地图标注对象。

       第②~④行代码用于获得地图标注对象MKPinAnnotationView,其中采用了可重用MKPinAnnotationView对象设计。这里使用可重用对象,是为了节约内存。一般情况下,尽可能使用已有对象,减少实例化对象。首先,在第②行代码中,我们使用dequeueReusableAnnotationViewWithIdentifier:方法通过一个可重用标识符PIN_ANNOTATION获得MKPinAnnotationView对象,如果这个对象不存在(第③行代码判断是否存在),则需要使用第④行代码的initWithAnnotation:reuseIdentifier:构造器创建,其中reuseIdentifier参数是可重用标识符。

       第⑤行代码设置大头针标注视图的颜色为紫色。此外,该颜色还可以设置成红色(Swift版MKPinAnnotationColor.Red,Objective-C版使用MKPinAnnotationColorRed)和绿色(Swift版使用MKPinAnnotationColor.Green,Objective-C版使用MKPinAnnotationColorGreen)。

       第⑥行代码说明设置标注视图时,是否以动画效果的形式显示在地图上。第⑦行代码用于在标注点上显示一些附加信息。如果canShowCallout为true(或YES),则点击“大头针”头时,会出现一个气泡(如图1),而气泡中的文字信息封装在MyAnnotation对象中,其中第一行文字(大一点的文字)保存在title属性中,而第二行文字(小一点的文字)保存在subtitle属性中。

IOS地图添加标注二:实现地图委托二

       在委托方法的最后,返回annotationView标注点视图对象。
       最后,我们看看自定义标注类MyAnnotation。MyAnnotation的定义如下:


IOS地图添加标注二:实现地图委托三IOS地图添加标注二:实现地图委托四


       地图上的标注点类必须实现MKAnnotation协议。MKAnnotation协议需要重写如下两个属性。
       1、itle:标注点上的主标题。
       2、subtitle:标注点上的副标题。

       在重写subtitle属性时,我们将它的相关信息拼接成字符串赋值给它。这里,我们可以根据自己的需要和习惯拼接在这个字符串的前后。

       关于iOS地图添加标注的所有方法就已经介绍完了,希望对大家有所帮助。如果大家对之前讲的关于触发添加动作的方法不太记得了,欢迎大家点击《IOS地图添加标注一:触发添加动作》进行复习。
400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
备案专线 备案专线
 
售后服务 售后服务
 
×