Custom CallOut在ios6中显示不正确?
因为我想在mkmapview中实现自定义调用,所以我使用这些类CalloutMapAnnotationView.h和CalloutMapAnnotationView.m
我从以下链接中提取了这些类
https://github.com/asalom/Custom-Map-Annotation-Callouts/blob/master/Classes/CalloutMapAnnotationView.h
https://github.com/asalom/Custom-Map-Annotation-Callouts/blob/master/Classes/CalloutMapAnnotationView.m
这些工作在ios5罚款,但在ios6时,当我点击呼叫地图视图移动和调出是不正确的,如下图所示,而我缩放它也不正确我已经尝试了几种方法获得通过检查os的版本来摆脱这个问题并试图改变类中的一些方法但不使用。
在这样的ios5地图视图中实现这些之后
在Ios6中,这个不像ios5中那样正常。 例如
我也在使用这些类的iOS 6
遇到同样的问题。 这些变化对我有用:
1)这种方法的改变:
这个方法将在你的地图视图类中实现
(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView*)view
如下面的顺序
self.selectedAnnotationView = view;
[self.mapView addAnnotation:self.calloutAnnotation];
2)在CalloutMapAnnotationView.m文件中
- (void)adjustMapRegionIfNeeded in this method first 5 lines like bellow
CGFloat xPixelShift = 0;
if ([self relativeParentXPosition] < 38) {
xPixelShift = 38 - [self relativeParentXPosition];
} else if ([self relativeParentXPosition] > self.frame.size.width - 38) {
xPixelShift = (self.frame.size.width - 38) - [self relativeParentXPosition];
}
3)在相同的类CalloutMapAnnotationView.m - (void)drawRect:(CGRect)rect
在CGFloat parentX = [self relativeParentXPosition];
之后CGFloat parentX = [self relativeParentXPosition];
行和以上rect = self.bounds;
此行添加以下行
if ([self relativeParentXPosition] < 38) {
parentX = 38;
} else if ([self relativeParentXPosition] > self.mapView.frame.size.width - 38) {
parentX = [self relativeParentXPosition]-25;
}
4)在同一个类CalloutMapAnnotationView.m中。
- (void)didMoveToSuperview {
[super didMoveToSuperview];
[self.superview bringSubviewToFront:self];
}
您可以直接使用上述类并在iOS 5和iOS 6中使用它们,它们都可以正常工作。您应该根据您的要求进行必要的更改。
只要你可以添加nsstring标题和nstring字幕,_name就是你想要的标题。
- (NSString *)title {
return _name;
}
- (NSString *)subtitle {
return [NSString stringWithFormat:@"%f, %f", _coordinate.latitude, _coordinate.longitude];
}
链接地址: http://www.djcxy.com/p/11527.html
上一篇: Custom CallOut not displayed correctly in ios6?
下一篇: How to show remote push notification as a banner style in active state of app?