5

ご挨拶!私はAppleのコードサンプルなしでMKMapViewを使おうとしていますが、他にもさまざまな明快さのサンプルがいくつかあります。(「フレンドリーなマニュアルを読んでください」と知っています。私はそれを行いましたが、100%明確ではないので、これについてはご容赦ください。)

これが状況です。MKMapViewオブジェクトがあり、約10個のMKPinAnnotationオブジェクトのセットを追加しました。ここまでは順調ですね。すべてが正常に割り当て/リリースされており、Instrumentsからの苦情はないようです。

最初の表示時に、最初のピン位置に中心点があり、(任意の)スパンが0.2x0.2のMKCoordinateRegionオブジェクトを設定しました。それから私は電話します:

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

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

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

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

私はここで何か馬鹿げたことをしているのではないかと思いますが、少なくともMapKitのドキュメントからは何を理解できていません。おそらく私は間違った呼び出しを使用していますか?(ええと、少なくとも1回はリージョンを設定する必要があります、そうですか?それを移動しても効果がないようです。)setCenterCoordinate:animated: -同じ問題を使用してみました。

この時点では何も想定していません(しゃれは意図していません)。ただ私の道を見つけようとしています。

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

更新:setRegion:animated:regionThatFits:を初めて呼び出し、続いてsetCenterCoordinate:animated:を呼び出しても、リストをトラバースしても効果はありません。ただし、興味深い発見:どちらの場合もアニメーションをNOに変更すると、マップが更新されます!!! YESに設定されている場合のみ。(何が起こるのですか?!アニメーション化されています:壊れていますか?それはできません... ???)

4

4 に答える 4

7

SIMULATOR を使用すると、マップの更新が機能しないことが判明しました。デバイスでsetCenterCoordinate :animated:を試すと、その下のマップが更新されます。

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

于 2009-07-28T12:14:16.007 に答える
2

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

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

}

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

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

于 2009-07-27T12:11:37.230 に答える
0

ハム奇妙な。シミュレーターでも Mac のマップが更新されます。たぶん、マップウィジェットがシミュレーターにタイルをダウンロードするのを防ぐネットワーク設定 (プロキシなど) でしょうか?

于 2009-07-31T08:17:43.287 に答える
0

これは古いトピックですが、私は自分の経験に耳を傾けたいと思いました。マップ アニメーションは、iOS 3.1.x を実行しているデバイスと 3.1.x を実行しているシミュレータでのみ失敗するようです。アニメーションがオンの場合、3.1.3 の私の開発 iPod touch はズームに失敗します。

于 2010-10-07T14:40:49.400 に答える