前两天我们学习了IOS地图添加标注中的触发添加动作方法,那么今天易速网络接着为大家介绍第二个步骤:实现地图委托方法mapView:viewForAnnotation。
MKMapViewDelegate委托协议方法mapView:viewForAnnotation:的代码如下:
在上述代码中,第①行代码所示的委托方法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属性中。
在委托方法的最后,返回annotationView标注点视图对象。
最后,我们看看自定义标注类MyAnnotation。MyAnnotation的定义如下:
地图上的标注点类必须实现MKAnnotation协议。MKAnnotation协议需要重写如下两个属性。
1、itle:标注点上的主标题。
2、subtitle:标注点上的副标题。
在重写subtitle属性时,我们将它的相关信息拼接成字符串赋值给它。这里,我们可以根据自己的需要和习惯拼接在这个字符串的前后。
关于iOS地图添加标注的所有方法就已经介绍完了,希望对大家有所帮助。如果大家对之前讲的关于触发添加动作的方法不太记得了,欢迎大家点击《IOS地图添加标注一:触发添加动作》进行复习。
易速网站优化公司 » IOS地图添加标注二:实现地图委托