Ios 其他接点后面的标注弹出窗口
我正在绘制一幅有5000多个图钉的地图。每次更改区域时,我都会根据缩放程度添加或删除注释视图 唯一的问题是(极端测试): 当插脚之间的空间很少时,标注会移动到顶部,但红色插脚通常会移动到顶部。Ios 其他接点后面的标注弹出窗口,ios,ios6,mapkit,mkannotationview,Ios,Ios6,Mapkit,Mkannotationview,我正在绘制一幅有5000多个图钉的地图。每次更改区域时,我都会根据缩放程度添加或删除注释视图 唯一的问题是(极端测试): 当插脚之间的空间很少时,标注会移动到顶部,但红色插脚通常会移动到顶部。 我只使用基本的MKPinAnnotationView。没有自定义标注。 我确实尝试过实现Aaron的Z-ordering-category,但似乎没有帮助 编辑: 我还没有解决它,但我确实有一些想法 MapKit写得很差。MapView有责任对视图进行排序,以便至少选定的视图位于顶部 也许mapView
我只使用基本的MKPinAnnotationView。没有自定义标注。 我确实尝试过实现Aaron的Z-ordering-category,但似乎没有帮助 编辑: 我还没有解决它,但我确实有一些想法 MapKit写得很差。MapView有责任对视图进行排序,以便至少选定的视图位于顶部 也许mapView处理的注释太多了 如何复制 只需添加5000条注释
-(void)addAnnotations
{
NSMutableArray *annotations = [NSMutableArray array];
for(int i=0;i<5000;i++) {
CGFloat latDelta = rand()*0.125/RAND_MAX - 0.02;
CGFloat lonDelta = rand()*0.130/RAND_MAX - 0.08;
CGFloat lat = 59.189358;
CGFloat lng = 18.267839;
CLLocationCoordinate2D newCoord = {lat+latDelta, lng+lonDelta};
DTSAnnotation *annotation = [DTSAnnotation annotationWithCoord:newCoord];
[annotation setTitle:@"."];
[annotations addObject:annotation];
}
[[self mapView]addAnnotations:annotations];
}
-(void)添加注释
{
NSMutableArray*注释=[NSMutableArray];
对于(int i=0;i您可以通过在didSelect和didSelect映射视图委托方法中设置视图的zPosition来解决此问题:
public func mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!)
{
view.layer.zPosition = 0
}
public func mapView(mapView: MKMapView!, didDeselectAnnotationView view: MKAnnotationView!)
{
view.layer.zPosition = -1
}
一个很难解决的方法是添加mapView:didSelectAnnotationView:并调用[view.superview将SubViewsToFront:view];然后将注释视图推回到mapView:viewForAnnotation:中。当您添加注释时,您应该将这些管脚聚集在一起,很难选择一个。感谢您提供的好提示!