質問

こんにちは!使用しようとしています MKMapView Apple コードのサンプルはありませんが、他にもさまざまな明確さを持つコードがいくつかあります。(「わかりやすいマニュアルを読んでください」ということはわかっています。私もそれを実行しましたが、100% 明確ではないので、これについてはご容赦ください。)

状況は次のとおりです。私は持っています MKMapView オブジェクトに約 10 個のセットを追加しました MKピン注釈 オブジェクト。ここまでは順調ですね。すべてが正常に割り当て/解放されており、Instruments からの苦情はないようです。

初期表示時に、 MK座標領域 最初のピンの位置に中心点があり、(任意の) スパンが 0.2 x 0.2 であるオブジェクト。次に、次のように呼び出します。

[mapView setRegion:region animated:YES];
[mapView regionThatFits:region];

おお!それはうまくいきました。

その間 ...また、各ピンの位置への移動を可能にするセグメント化されたコントロールもあります。したがって、リストをタップすると、新しい呼び出しのペアを使用して、マップが新しいピンの位置ごとにアニメーション化されます。 setRegion:アニメーション: そして 適合する地域: ...または少なくともそれがアイデアです。

マップは新しいピンの位置に「移動」しますが、マップ自体はその下で更新されません。代わりに、灰色/空白の地図の背景にピンが表示されます... それまで たとえわずかであっても、地図を任意の方向に動かします。すると地図が透けて見えてきます!(前のピンの位置から短い距離内だけを移動している場合は、通常、マップのどの部分がすでに読み込まれているかが表示されます。)

ここで何かばかげたことをしているのではないかと思いますが、少なくとも MapKit のドキュメントからは、それが何なのかを理解できませんでした。もしかして、間違った電話をかけているのでしょうか?(そうですね、少なくとも 1 回は地域を設定する必要がありますね?ただし、それを移動しても役に立たないようです。)また、使用してみました setCenterCo座標:アニメーション化: - 同じ問題です。

現時点では何も想定していません(冗談ではありません)。ただ自分の道を見つけようとしているだけです。

手がかりを歓迎/感謝します!

アップデート:電話をかける setRegion:アニメーション: そして 適合する地域: 初めて、その後 setCenterCo座標:アニメーション化: リストを走査している間は効果がありません。しかし興味深い発見がありました:どちらの場合もアニメーションを NO に変更すると、マップが更新されます。YESに設定されている場合のみ。(何が起こった?!アニメーション化されています:壊れた?そんなはずはありません...???)

役に立ちましたか?

解決

SIMULATORを使用すると地図更新が機能しないことが判明しました。試してみると setCenterCo座標:アニメーション化: デバイス上で、私は する その下にある地図の更新を取得します。

結論:私は、マップ更新動作に関してシミュレーターがデバイスと一致すると信頼していました。ああ、私は間違っていました!学んだ教訓。「これをあなたに起こさせないでください。」 :)

他のヒント

を呼び出す必要があります。 setRegion:animated: メインスレッドコンテキストで呼び出します。次のようなことをしてください:

....
[self performSelectorOnMainThread:@selector(updateMyMap) withObject:nil waitUntilDone:NO];

}

-(void) updateMyMap {
    [myMap setRegion:myRegion animated:YES];    
}

どのような場合でも (アニメーションかどうかに関係なく) 機能し、その下にあるマップが更新されます。

うーん、不思議ですね。Mac ではシミュレーターでもマップが更新されます。おそらく、マップ ウィジェットがシミュレーターにタイルをダウンロードできないようにするネットワーク設定 (プロキシなど) でしょうか?

これは古いトピックではありますが、私の経験を踏まえてお話したいと思います。マップ アニメーションは、iOS 3.1.x を実行しているデバイスと 3.1.x を実行しているシミュレーターでのみ失敗するようです。私の開発用 iPod touch 3.1.3 では、アニメーションがオンになっているとズームに失敗します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top