我在iOS 6的地图上观察到了一个奇怪的行为。这是一个添加单个注释的代码,绝对不会在项目中添加任何其他注释:
- (void)viewDidLoad
{
    [super viewDidLoad];
    MKPointAnnotation * p = [[MKPointAnnotation alloc] init];
    p.coordinate = CLLocationCoordinate2DMake(10, 10);
    p.title  = @" test test";
    [self.mapView addAnnotation:p];
    self.mapView.centerCoordinate = p.coordinate;
}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id < MKAnnotation >)annotation
{
    MKPinAnnotationView * p = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"wassup" ];
    p.canShowCallout = YES;
    p.pinColor = MKPinAnnotationColorGreen;
    return p;
}当它被选中时,我将地图移动(平移)较小的距离,如0.5-1厘米,在iOS6上注释将被取消选择。在早期版本中,工作方式与预期相同,并保持选中状态。
这是个bug吗?有什么解决方法吗?
谢谢!
发布于 2012-12-07 21:11:01
苹果地图充满了漏洞..哈哈你也注意到了..它是iOS 6的一个特性,有时会激怒用户。:)
在annotaionView方法使用中:
// iOS6 BUG WORKAROUND !!!!!!!
if (is6orMore) {
     [annotationView setTransform:CGAffineTransformMakeRotation(.001)]; //any small positive rotation
}另请参阅link
发布于 2012-12-11 13:20:35
如果不想取消选择注释视图,则应该子类MKAnnotationView并覆盖setSelected:animated:方法,并停止取消选择注释视图。
https://stackoverflow.com/questions/13763048
复制相似问题