My Current MKMapView是:
但是当我放大时我想将Pin Image更改为:
再次将更改缩小为默认的紫色圆圈。
我想在iOS Swift 4中用户放大/缩小MKMapView时更改Pin Image。 提前致谢! 快乐的编码!
答案 0 :(得分:1)
步骤1.首先,您需要获取在地图上显示引脚/注释的信息。
目标c
-(void)getAnotationsInVisibleMapRectangle
{
NSSet *annotationSet = [myMapView annotationsInMapRect:myMapView.annotationVisibleRect];
NSArray *annotationArray = [annotationSet allObjects];
}
夫特
extension MKMapView {
func visibleAnnotations() -> [MKAnnotation] {
return self.annotationsInMapRect(self.visibleMapRect).map { obj -> MKAnnotation in return obj as! MKAnnotation }
}
}
步骤2.您将有委托方法调用放大/缩小regionDidChangeAnimated
。只需调用上述功能即可。并更新你的pin。
func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
print("call on zoom and zoom out ")
let aryData = mapView.visibleAnnotations()
print(aryData[0].coordinate)
//remove pin from this coordinate
//And add new pin as you want
}
在这里你可以找到别针。然后移除旧引脚并根据需要添加新引脚。