カスタム ピンが設定されたマップ ビューを使用しています。ユーザーがマップのどこかをタップしてピンの選択を解除した場合、ピンの選択が解除されないようにマップを実装したいと考えています (つまり、ユーザーは他のピンを選択しないとピンの選択を解除できないため、少なくとも 1 つのピンが常に選択されます)。 )。これが didDeselectAnnotationView メソッドの私の実装です。
-(void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
[mapView selectAnnotation:view.annotation animated:NO];
}
基本的に、注釈を再選択しようとしています。ただし、デバッグしてコンソールに出力した後、メソッド didDeselectAnnotationView: の実行が終了するまで、注釈ビューが実際には選択解除されていないことに気付きました (つまり、イベントの順序は次のようになります: ユーザーがマップ上のどこかをタップすると、 didDeselectAnnotationView: が呼び出されます)。実行が終了すると、注釈ビューは実際には選択解除されます)。他の誰かがこの問題を経験したことがありますか、またはユーザーが他のピンを選択しないとピンの選択を解除できず、常に 1 つのピンが選択されるように、マップの動作を強制する別の方法を知っている人はいますか?
助けてくれてありがとう。