ロードマップ領域を試していて、MKMapViewデリゲートメソッドが2回目以降のロードで呼び出されていません。デリゲートメソッドのどれもMKMapViewキャッシュをクリアするには?
- (void)mapViewWillStartLoadingMap:(MKMapView *)mapView;
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView;
- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error;
と呼ばれることはありません。唯一のメソッドは、
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
です。ios4はmapviewタイルイメージをキャッシュしているようです。
これらの行は、MKMapViewDelegate Protocol Referenceのドキュメントにあります。ハイライトされた行が私の問題です。
このメソッドは、現在のリクエストに関連付けられたマップタイルがロードされたときに呼び出されます。 新しい可視領域がスクロールされ、タイルが利用可能でない場合、マップタイルが要求されます。マップタイルは、現在表示されていないマップの部分に対しても要求されることがあります。例えば、地図ビューは、ユーザが小さなパンを取り扱うために必要なときに現在可視領域を囲むタイルをロードすることができる。
マップがロードされた後に、上記のデリゲートメソッドのどれも呼ばれていないので、特定の操作を実行する必要があります。誰もがキャッシュをクリアするか、これに対する代替ソリューションを提供する修正を提案することはできますか?私はすでにhereとthisと記載されている方法を使ってみましたが、私はまだコードを動作させることができませんでした。
これらのデリゲートメソッドを使用して達成しようとしているものは何ですか? – AlexB
didFinishLoadingMapにmapのスクリーングラブが必要です。このデリゲートメソッドは、didfinishとfailLoad delegateのどちらも呼び出さないタイルをキャッシングした後に、一度呼び出されます。私は今どうすればいい? –
私はこれに関連するApple Bug#13774496を提出し、iOS6に問題が存在することを示すサンプルアプリケーションを作成しました:https://github.com/iwasrobbed/MapKitDelegateBug – iwasrobbed