我当前的 MKMapView 是:
但是当我放大时,我想将 Pin Image 更改为:
再次缩小更改为默认的紫色圆圈。
当用户在 iOS Swift 4 中放大/缩小 MKMapView 时,我只想更改 Pin Image。 提前致谢! 快乐编码!
最佳答案
第 1 步。首先,您需要获取 map 上显示的图钉/注释的信息。
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 步。您将有委托(delegate)方法调用放大/缩小 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
}
在这里你可以找到别针。并根据需要删除旧引脚并添加新引脚。
关于ios - 在特定的缩放 iOS Swift 4 上更改 MKMapView 的 Pin 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49549719/