我在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上取消选择注释。在早期版本上按预期工作并保持选中状态。
这是一个错误吗?这有什么解决方法吗?
谢谢!
答案 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:方法并停止取消选择注释视图。