0

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 cm のような小さな距離でマップを移動 (パン) すると、iOS6 で注釈の選択が解除されます。以前のバージョンでは期待どおりに動作し、選択されたままになります。

バグですか?これに対する回避策はありますか?

ありがとう !

4

2 に答える 2

0

Apple マップにはバグがたくさんあります..LOL あなたもそれに気づきました..iOS 6 の機能であるために、ユーザーを苛立たせることがあります.. :)

annotaionView メソッドで次を使用します。

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

リンク先もご覧ください

于 2012-12-07T13:11:01.407 に答える
0

注釈ビューを選択解除したくない場合は、MKAnnotationView をサブクラス化し、setSelected:animated: メソッドをオーバーライドして、注釈ビューが選択解除されないようにする必要があります。

于 2012-12-11T05:20:35.383 に答える