【问题标题】:ios6 MKMapView deselection bugios6 MKMapView 取消选择错误
【发布时间】:2012-12-07 12:24:24
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 有关于这个问题的消息吗?当我在 mapView 上调用 setCenterCoordinate:animated: 时,我也有类似的行为。
  • 不...尚未找到解决方案。

标签: iphone ios6 mkmapview


【解决方案1】:

Apple 地图充满了错误。哈哈,你也注意到了。。 它是 iOS 6 的一个功能,有时会激怒用户.. :)

在annotaionView方法中使用:

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

另见link

【讨论】:

  • 我必须同意这些错误 :) 但这并不能解决我的问题。我把这条线放在viewForAnnotation 中,当我向任何方向移动一点地图时它仍然会被取消选择:(
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多