私はMKMapViewをいくつかの注釈を付けた私のビューの1つに持っています。また、各セルに各アノテーションの詳細を提示する隠れたUITableViewもあります。ユーザーが特定のアノテーションを選択すると、tableViewが表示され、特定のセルが選択されます。また、ユーザがセルを選択すると、特定の注釈が選択される。MKMapView didDelectlectAnnotationViewとUITableViewとのやりとり
注釈が選択され、ユーザーがマップをタップするとtableViewが消えますが、ユーザーが別の注釈を選択するとtableViewが表示され、選択されたインデックスが変更されます。
問題は、didDeselectAnnotationView
メソッドにあります。そこに現時点では何も選択した注釈がないとのtableViewは常に隠されます
- (void)mapView:(MKMapView *)mapview didSelectAnnotationView:(MKAnnotationView *)view
{
if([mapView.selectedAnnotations count] == 0)
[self hideTableView];
}
:メソッドでチェックしたいので、ときにdidSelectAnnotationView
前に呼び出されます。
私の質問は、didDeselectAnnotationView
がタップされた地図と別の注釈の選択を区別する方法があるかどうかです。
また、iPhone 3G(4.2.1)didDeselectAnnotationView
でAFTER didSelectAnnotationView
が呼び出される理由は何ですか?それはかなり変わったようです!
ありがとうございます!
サイモンさん、ありがとう、私が必要としているようです。 2番目の質問に関するアイデア(iPhone3Gについて)ありがとうございました! – ozzotto
呼び出しがスレッド化されているため、電話でのパフォーマンス、または特定のOSでの異なるコード最適化が難しいかもしれませんが、スレッドのボトルネックが変わる可能性があることを決して知らないので、通知の順序 –