忍者ブログ
  • 2024.11«
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • » 2025.01
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/12/04 02:03 】 |
Google Maps SDK for iOS 1.3.x その3
Google Maps SDK for iOS

とりあえず、実装できたので少しずついじっています。

そしてつまった。

いろいろクラスが用意されているのは分かりました。
しかし一番の疑問は、UIKitとの同時表示は出来ないのだろうか?
例えばAndroidのように画面の下半分はMapで上半分にTextViewというような。




とある。

注目したいのが

Create or update a ViewController. If the map will be displayed when this view controller becomes visible, be sure to create it within the loadView method.

"ViewControllerがVisibleになるときにmapを表示させたいならloadViewメソッドに書いてください"


loadViewっていつどこから呼ばれてるんだろうか?

ちょっと分からなかったので「とりあえずタイミングだけでも分かれば手がかりがあるかもしれない」とおもってNSLogをViewDidLoadとこの"loadView"に突っ込んでみた結果がこちら。



viewDidLoadより早い!
ライフサイクルのなかにある普段オーバーライドしてないメソッドなんだろうと気がつく。

Androidのライフサイクルのように、iOSのライフサイクルはまだ勉強してない。
授業でも全くやってない気がする。viewDidLoadが一番最初って思ってた。

iOSのアプリのライフサイクル



このAPIではAPIKeyの設定を上記図の中央:UIApplicationDelegate上から4番目で行う。
ViewController起動時にMapを表示する際は、UIオブジェクトを設定するのはUIViewControllerで一番最初に動くメソッドなければならないのでloadViewで動的にセットする。ということになるようだ。


・GMSMapViewの上にButton等を設定したい場合はviewDidLoadで動的に設定する。

上記のことから、もしUIKitのオブジェクトをマップの上にセットしたい場合は、loadViewでMapを設定したのちライフサイクルで次に呼ばれるviewDidLoadで動的に設定すれば可能ではないかと試してみた。



できました。

ほかのUIKitのアイテムに関しても可能だと思います。

レイヤーをうまく使えば、下半分を別UIを配置して上半分は地図等も可能かと思います。
地図自体の範囲をいじれるかも挑戦してみたいと思います。

サンプル
GitHub




PR
【2013/06/16 21:23 】 | Objective-C | 有り難いご意見(0)
<<キー値監視、KVO(Key Value Observing) | ホーム | Google Maps SDK for iOS その2実装編>>
有り難いご意見
貴重なご意見の投稿















前ページ | ホーム | 次ページ

忍者ブログ [PR]