- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
if ([view.annotation isKindOfClass:MKUserLocation.class]) {
[mapView deselectAnnotation:view.annotation animated:YES];
}
else {
[mapView deselectAnnotation:view.annotation animated:YES];
view.image=[UIImage imageNamed:@"pin_location_purple@2x.png"];//annotation pin
[self ToolTipView:view];//For adding the callout view
}
}
答案 0 :(得分:1)
有一个开源项目SMCalloutView
,它以类似于MapKit的方式解决了这个问题。看看他们设置的委托协议,它允许代表根据靠近屏幕边缘调整其内容偏移量:
https://github.com/nfarina/calloutview/blob/master/SMCalloutView.m#L303-L331
您可以采用类似的方法,但您必须从像素值进行一些MKMapPoint
转换,以便类似地控制MKMapView
偏移量。