4

在 iOS6 地图视图中选择图钉时遇到一个神秘问题 在此处输入图像描述

顺便说一句,它在 iOS 5 中正常工作,我不确定它们在 iOS 6 的地图中发生了什么变化,从而产生了这个问题。

请注意,当我单击地图时,标注直接越过大头针并正确显示

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

提前致谢

4

4 回答 4

6

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

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

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

[self.superview bringSubviewToFront:self];

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

于 2012-09-26T09:39:41.177 回答
0

这个解决方案对我不起作用,但是这个解决方案做到了:

自定义注释视图在 iOS6 上不起作用

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

于 2012-10-04T06:42:00.547 回答
0

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

该图钉永远不会与 CalloutView 重叠。我使用自定义 calloutview ,在文件 Base calloutView 中添加:

 - (void)didMoveToSuperview {
        [super didMoveToSuperview];
        [self.superview bringSubviewToFront:self];
    }
于 2012-11-05T04:22:04.980 回答
0

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

因为这个问题通过手指稍微移动一下地图就解决了,所以我发现很容易通过将代码放入 - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view 来模拟这种效果。偏移量很小,根本看不到任何视觉运动。

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

    [self.mapView setCenterCoordinate:newCenterCoordinate animated:NO];
于 2013-01-21T01:23:46.727 回答