cocos2d:UIKitのコンポーネントを実装
2012/11/08
category: cocos2d | tag: cocos2d, iOS, Objective-C, UIKit | no comments
プログラミングやテクニカルな内容の覚え書き。
2012/11/08
category: cocos2d | tag: cocos2d, iOS, Objective-C, UIKit | no comments
githubにアカウントを作成し、gistも合わせて使ってみることにしました。
InterfaceBuilderで作成した画面にaddSubviewしたビューの表示が、3.5インチと4インチで違って見える。
InterfaceBuilderで作成した画面の属性「Autoresize Subview」がチェックされていると、画面サイズに合わせてサブビューの内容がリサイズされるため。
ここ最近、AdmobのANEを作ってFlash Builderでアプリを制作することを考えていましたが、一旦保留とすることにしました。残念ながら、AIR3.4とFlashBuilder4.6はiOS6に対応していません。ANEを作成する上でも、幾つかの問題にぶつかってしまいました。
iOS6に対応したAIR3.5?とFlashBuilder4.7が出るまで、ネイティブObjective-C+cocos2dでアプリ開発を進めることにしました。
早速、cocos2dを使ったプロジェクトにAdmobを実装してみました。
テスト用の広告を設定し、AdMobのイベントを確認しました。概要とともにメモ。
loadRequestが成功したときに送信される。
loadRequestが失敗したときに送信される。
ユーザーが広告をタップした後、フルスクリーンで表示する前に送信される。
フルスクリーン表示が終了すると送信される。
フルスクリーン表示が終了し、アプリとルートビューコントローラが復元される直前に送信される。
AppStoreが開くなどでアプリケーションがバックグラウンドに切り替わる(終了する)際に送信される。
# 詳細はGoogleのドキュメントを参照:
# https://developers.google.com/mobile-ads-sdk/docs/ios/intermediate?hl=ja
実行時に画面のサイズを取得したい。
1 2 3 4 5 6 7 8 |
CGRect r1 = [[UIScreen mainScreen] bounds]; printf("w:%f, h:%f\n", r1.size.width, r1.size.height); CGRect r2 = [[UIScreen mainScreen] applicationFrame]; printf("w:%f, h:%f\n", r2.size.width, r2.size.height); BOOL s = [UIApplication sharedApplication].statusBarHidden; printf("statusBarHidden:%d", s); |
1行目:
デバイスのスクリーンの領域を取得する。
ステータスバーが表示されていても表示されていなくとも、返される値は変わらない。
4行目:
ステータスバーの領域を考慮した領域を取得する。
ステータスバーが表示されていると、ステータスバーの領域がマイナスされた値となる。
7行目:
ステータスバーが非表示となっているかを取得する。
YES:非表示, NO:非表示ではない