【发布时间】:2018-03-29 06:50:43
【问题描述】:
我当前的 MKMapView 是:
但是当我放大时,我想将 Pin Image 更改为:
再次缩小更改为默认的紫色圆圈。
当用户在 iOS Swift 4 中放大/缩小 MKMapView 时,我只想更改 Pin Image。 提前致谢! 快乐编码!
【问题讨论】:
标签: ios swift mkmapview swift4 mkannotationview
我当前的 MKMapView 是:
但是当我放大时,我想将 Pin Image 更改为:
再次缩小更改为默认的紫色圆圈。
当用户在 iOS Swift 4 中放大/缩小 MKMapView 时,我只想更改 Pin Image。 提前致谢! 快乐编码!
【问题讨论】:
标签: ios swift mkmapview swift4 mkannotationview
第 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
}
在这里您可以找到图钉。并根据需要删除旧引脚并添加新引脚。
【讨论】: