1

マップビューに常にコールアウトを表示するにはどうすればよいですか?マップビューのコールアウトをタップすると、非表示になり、もう一度ピンをタップして表示します。私はこのようにしたくありません..、私は常にコールアウトを非表示なしで表示する必要があります。これを行う方法。私を助けてください。コールアウトを表示するために以下のコードを使用しています。正常に動作していません。

[mapView selectAnnotation:addAnnotation animated:NO];
annotationView.canShowCallout   = YES;
4

2 に答える 2

2

delegateの方法didDeselectAnnotationViewを使用してこれを行うことができ、このように選択を解除するときにMKMapView同じものを選択しますannotation-

- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
    [mapView selectAnnotation:view.annotation animated:FALSE];
}
于 2012-10-20T07:07:49.467 に答える
0

MKAnnotationViewが選択され、ビューのcanShowCalloutプロパティがに設定されている場合、コールアウトが表示されYESます。

MKAnnotationView選択を解除すると非表示になります。これは、別の注釈ビューをタップするか、現在選択されている注釈ビューの外側をタップすることで発生します。

MKMapView(に準拠)の代理人としてMKMapViewDelegate、注釈ビューが選択および選択解除されたときに通知されますが、それについて何もするのは遅すぎます。

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

編集:

コードにこのメソッドが含まれている場合は、このメソッドを削除してください

- (void)deselectAnnotation:(id < MKAnnotation >)annotation animated:(BOOL)animated
于 2012-10-20T07:00:33.087 に答える