2012-12-07 37 views
0

我在的iOS 6 这里观察与地图一个奇怪的行为是增加了一个单独的注释,绝对没有别的项目代码:iOS6的的MKMapView取消选择错误

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

这是一个错误?有没有解决方法?

谢谢!

+1

关于这个问题的任何消息?当我在我的mapView上调用setCenterCoordinate:animated时,我有类似的行为: – CharlieMezak

+0

不...没有找到解决方案。 – Templar

回答

0

苹果地图是完全错误的.. LOL你注意到了.. 它的iOS 6的功能有时可能会刺激用户.. :)

在annotaionView方法使用:

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

另见link

+0

我必须同意这些错误:)但这并不能解决我的问题。我把这一行放在'viewForAnnotation'中,当我移动地图的任何方向时仍然被取消选择:( – Templar

0

如果你想不取消注释视图,你应该继承MKAnnotationView和覆盖的setSelected:动画:方法和被取消停止注解视图。

+0

我不想让它“不可取消”,只是为了表现正常... – Templar