在特定缩放时更改 MKMapView 的 Pin 图像 iOS Swift 4
Change Pin Image of MKMapView on specific zoom In-Out iOS Swift 4
我当前的 MKMapView 是:
但是当我放大时,我想将 Pin Image 更改为:
再次缩小更改为默认的紫色圆圈。
我只是想在 iOS Swift 中用户缩放 In/Out MKMapView 时更改 Pin 图片 4.
提前致谢!
编码愉快!
第 1 步。首先,您需要获取地图上 pin/annotation 显示的信息。
Objective c
-(void)getAnotationsInVisibleMapRectangle
{
NSSet *annotationSet = [myMapView annotationsInMapRect:myMapView.annotationVisibleRect];
NSArray *annotationArray = [annotationSet allObjects];
}
Swift
extension MKMapView {
func visibleAnnotations() -> [MKAnnotation] {
return self.annotationsInMapRect(self.visibleMapRect).map { obj -> MKAnnotation in return obj as! MKAnnotation }
}
}
第 2 步。您将让委托方法调用缩放 in/out regionDidChangeAnimated
。只需调用上述函数即可。并更新您的密码。
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
}
在这里你可以找到别针。并根据需要删除旧引脚并添加新引脚。
我当前的 MKMapView 是:
但是当我放大时,我想将 Pin Image 更改为:
再次缩小更改为默认的紫色圆圈。
我只是想在 iOS Swift 中用户缩放 In/Out MKMapView 时更改 Pin 图片 4. 提前致谢! 编码愉快!
第 1 步。首先,您需要获取地图上 pin/annotation 显示的信息。
Objective c
-(void)getAnotationsInVisibleMapRectangle
{
NSSet *annotationSet = [myMapView annotationsInMapRect:myMapView.annotationVisibleRect];
NSArray *annotationArray = [annotationSet allObjects];
}
Swift
extension MKMapView {
func visibleAnnotations() -> [MKAnnotation] {
return self.annotationsInMapRect(self.visibleMapRect).map { obj -> MKAnnotation in return obj as! MKAnnotation }
}
}
第 2 步。您将让委托方法调用缩放 in/out regionDidChangeAnimated
。只需调用上述函数即可。并更新您的密码。
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
}
在这里你可以找到别针。并根据需要删除旧引脚并添加新引脚。