在特定缩放进出iOS Swift 4

时间:2018-03-29 06:50:43

标签: ios swift mkmapview swift4 mkannotationview

My Current MKMapView是:

但是当我放大时我想将Pin Image更改为:

enter image description here

再次将更改缩小为默认的紫色圆圈。

我想在iOS Swift 4中用户放大/缩小MKMapView时更改Pin Image。 提前致谢! 快乐的编码!

1 个答案:

答案 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
}

在这里你可以找到别针。然后移除旧引脚并根据需要添加新引脚。