ios6 MKMapView取消选择错误

时间:2012-12-07 12:24:25

标签: iphone ios6 mkmapview

我在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上取消选择注释。在早期版本上按预期工作并保持选中状态。

这是一个错误吗?这有什么解决方法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

Apple地图充满了虫子..大声笑你也注意到了.. iOS 6的某个功能有时会激怒用户.. :)

在annotaionView方法中使用:

// iOS6 BUG WORKAROUND !!!!!!!
if (is6orMore) {
     [annotationView setTransform:CGAffineTransformMakeRotation(.001)]; //any small positive rotation
}

另见link

答案 1 :(得分:0)

如果您不想取消选择注释视图,则应该继承MKAnnotationView并覆盖setSelected:animated:方法并停止取消选择注释视图。