私は、カスタムピンを埋め込んだマップビューで作業しています。ユーザーがマップのどこかをタップしてピンの選択を解除すると、ピンが選択解除されないようにマップを実装したい(つまり、ユーザーは他のピンを選択せずにピンの選択を解除できないため、常に少なくとも1つのピンが選択されます)。ここでdidDeselectAnnotationView方法の私の実装です:基本的にmapView:didDeselectAnnotationView:アノテーションビューが実際に選択解除される前に、デリゲートメソッドが呼び出される
-(void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
[mapView selectAnnotation:view.annotation animated:NO];
}
、私は注釈を再選択しようとしています。しかし、デバッグとコンソールへの印刷の後、私は、メソッドのdidDeselectAnnotationView:実行が終了するまで(つまり、イベントの順序が次のようになるまで)、アノテーションビューが実際には選択解除されていないことに気づきました。実行が終了すると、注釈ビューは実際には選択解除されます)。他の誰かがこの問題を経験したことがありますか、または他のピンを選択せずにピンの選択を解除できないように、ピンの動作を強制する別の方法を知っていますか?
ありがとうございました。
おかげで動作します!それは働いているようだ。 – Eli
私にとってこれは 'annotationView.canShowCallout = false'の場合にのみ有効です –