Iphone 我们可以从MKMapView获取所有注释视图吗
关于如何从Iphone 我们可以从MKMapView获取所有注释视图吗,iphone,objective-c,Iphone,Objective C,关于如何从MKMapView获取所有注释,是否有任何直接方法或建议?您可以使用地图的注释属性访问地图的注释。获取所有注释的视图可能并不总是可行的,因为当前在地图上不可见的注释可能没有与其关联的视图,但对于任意注释,您可以尝试使用-viewForAnnotation:方法获取视图 因此,这里介绍了如何遍历所有地图的注释并尝试访问它们的视图: for (id<MKAnnotation> annotation in mapView.annotations){ MKAnnotatio
MKMapView
获取所有注释,是否有任何直接方法或建议?您可以使用地图的注释属性访问地图的注释。获取所有注释的视图可能并不总是可行的,因为当前在地图上不可见的注释可能没有与其关联的视图,但对于任意注释,您可以尝试使用-viewForAnnotation:
方法获取视图
因此,这里介绍了如何遍历所有地图的注释并尝试访问它们的视图:
for (id<MKAnnotation> annotation in mapView.annotations){
MKAnnotationView* anView = [mapView viewForAnnotation: annotation];
if (anView){
// Process annotation view
...
}
}
for(mapView.annotations中的id注释){
MKAnnotationView*anView=[mapView视图用于注释:注释];
如果(anView){
//进程注释视图
...
}
}
在swift 3中
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
let selectedAnnotation = view.annotation
for annotation in mapView.annotations {
let viewI = mapView.view(for: annotation)
if !(viewI?.annotation is MKUserLocation){
if annotation.isEqual(selectedAnnotation) {
viewI?.image = UIImage(named: "focus.png")
showLifeEventView(anotation: view) //did select a point on Map.
}else{
viewI?.image = UIImage(named: "point.png")
}
}
}
}
这将创建一组新的MKAnnotationViews,而不是返回地图上现有的MKAnnotationViews。^否,它不会创建新的注释。最初的解决方案是正确的。Aneil,我怀疑你把MKMapView
方法viewForAnnotation
(在Vladimir的例子中正确工作)和MKMapViewDelegate
方法mapView:viewForAnnotation:
(它创建注释,但你从来没有直接调用过)。这真是太糟糕了。这节省了我的时间。