mkmapview自定义标注泡泡ios6

时间:2012-09-25 11:22:21

标签: ios mkmapview ios6

我在mapview iOS6中选择一个引脚时遇到了一个谜问题 enter image description here

顺便说一下,它在iOS 5中运行正常,我不确定他们在iOS 6地图中发生了什么变化产生了这个问题。

请注意,当我点击地图时,标注会直接遍历图钉并正确显示

任何帮助/线索将不胜感激,

提前致谢

4 个答案:

答案 0 :(得分:6)

答案可能会有所不同,具体取决于您实施自定义标注气泡的方式。这是我正在使用的解决方案:Customize the MKAnnotationView callout我遇到了完全相同的问题。

基本上,每当标注显示时,我都必须将子视图放在前面。

在这种情况下,我的自定义标注气泡是一个名为'BaseCalloutView'的类,它包含一个UIView作为其ContentView属性(如上面链接的UML图中所示)。选择注释后,它会触发BaseCalloutView的'animateIn'功能,我添加了该功能:

[self.superview bringSubviewToFront:self];

正如我所提到的,您的里程可能会有所不同,具体取决于您实施自定义标注气泡的方式。如果需要,我可以为您提供完整的代码 - 但说实话,我的代码中有90%来自上面的链接。

答案 1 :(得分:0)

这个解决方案不适用于我,不过那个人做了:

Custom Annotation View do not work on iOS6

很抱歉不确定如何正确链接答案。

答案 2 :(得分:0)

在IOS 5和IOS 6中,我试试这个,没关系

该引脚永远不会与CalloutView重叠。 我使用自定义calloutview,在文件Base calloutView中我添加了这个:

 - (void)didMoveToSuperview {
        [super didMoveToSuperview];
        [self.superview bringSubviewToFront:self];
    }

答案 3 :(得分:0)

我使用相同的代码库,遇到同样的问题。 [self.superview bringSubviewToFront:self];对我来说不起作用,不管我把它放在哪里。 [annimateIn]或[didMoveToSuperView]或[layoutIfNeeded]

因为这个问题因手指移动地图而消失了所以我发现通过将代码放入 - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)视图来模拟这种效果非常容易。偏移非常小,根本没有注意到视觉运动。

    CLLocationCoordinate2D newCenterCoordinate = {self.mapView.region.center.latitude + 0.0000001,
        self.mapView.region.center.longitude + 0.0000001};

    [self.mapView setCenterCoordinate:newCenterCoordinate animated:NO];