在iOS6的mapview中选择一个pin时,我遇到了一个神秘的问题。顺便说一句,在iOS5中它是正常的,我不确定他们在iOS6的地图上做了什么才会出现这个问题。请注意,当我点击地图时,弹出框直接覆盖在标记上并正确显示。如果有任何帮助或线索,将不胜感激。谢谢!
[self.superview bringSubviewToFront:self];
正如我所提到的,您实现自定义标注泡泡的方式可能会有所不同。如果需要,我可以提供完整代码 - 但是老实说,我的90%代码来自上面提供的链接。
- (void)didMoveToSuperview {
[super didMoveToSuperview];
[self.superview bringSubviewToFront:self];
}
我正在使用相同的代码库,遇到了同样的问题。[self.superview bringSubviewToFront: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];