有时间再回来研究
百度地图BMKAnnotationView的重用
//MARK:BMKMapViewDelegate
/**
根据anntation生成对应的annotationView
@param mapView 地图View
@param annotation 指定的标注
@return 生成的标注View
*/
func mapView(_ mapView: BMKMapView!, viewFor annotation: BMKAnnotation!) -> BMKAnnotationView! {
if annotation.isKind(of: BMKPointAnnotation.self) {
/**
根据指定标识查找一个可被复用的标注,用此方法来代替新创建一个标注,返回可被复用的标注
*/
var annotationView: BMKPinAnnotationView? = mapView.dequeueReusableAnnotationView(withIdentifier: annotationViewIdentifier) as? BMKPinAnnotationView
if annotationView == nil {
/**
初始化并返回一个annotationView
@param annotation 关联的annotation对象
@param reuseIdentifier 如果要重用view,传入一个字符串,否则设为nil,建议重用view
@return 初始化成功则返回annotationView,否则返回nil
*/
annotationView = BMKPinAnnotationView.init(annotation: annotation, reuseIdentifier: annotationViewIdentifier)
//annotationView显示的图片,默认是大头针
annotationView?.image = UIImage.init(named: "poi.png")
}
return annotationView
}
return nil
}