横向きに対応しなければならないとのこと。iPadも1ヶ月販売延期したから、その間に考えるか・・・。3.0以上/iPadのユニバーサルバイナリーを作成。Storeに3度目の申請。v0.80b)が審査に通過。iPadも本日日本上陸で、何とか間に合いましたね。次はOS4.0ですか。(2009.07.28開設)DrawingXを参考に作ってみました。(2009.07.28)番号の最大値に、上限の数を入力し、初期化ボタンをクリックします。番号の最大値をいれずに初期化ボタンを押したりすると、エラー表示でます番号の最大値は、1以上の整数しか入力できなくなっています。有効)をたてる区切りボタンを廃止し、かわりに回復ボタンを付ける。(2009.07.30)該当者なしを押したら、結果表示(今の)を消す(clearColor)にする。番号の最大値がおかしいデータならエラーを出していたが、さらに入力したデータも削除することにした。(2009.07.30)前の抽選結果について、該当者なしボタンを押していたら()表示する。COPYを押したときのクリップボードには、該当者なしフラグ以外のデータを保管。(2009.07.30)該当者なしボタンのタイトル名を#defineで定義できるように変更これでボタンのタイトルを自由に変更できるCOPYを押したときのクリップボードには、該当者なしフラグ以外のデータを保管。「キャンセル」を押したら、「該当者なし」にボタンが変更され、現在の抽選結果も有効になる。(2009.07.30)該当なしを押して、抽選を押すと、「キャンセル」の表示のままであるバグを修正setTitleButtonメソッドを追加。viewDidLoadではこのメソッドを使うと、以後タイトル変更できない・・何故かは不明。して呼び出してやると処理できた。@"ASCII文字列だけしか使っちゃダメよ"。@を使う場合には日本語使うなと。encoding:NSUTF8StringEncoding]のように使う。iPhoneはUTF8が標準のようだ。MacOSXはUTF16らしい。(2009.08.01)アプリ名の変更XcodeのResourcesに新規ファイルを追加。(2009.08.05)デバッグログをDebug指定したときのみ表示http://d.hatena.ne.jp/Psychs/20081120/1227203259を参照。ように使うと、後から名称変更も出来て便利。ResoucesにLocalizable.stringsを追加し、そのファイルの情報で「ローカナイズを可能に」をする。するとLocalizable.stringsの下層にEnglishが出来る再度、Localizable.stringsの情報を見て、ローカリゼイションの追加で、Japaneseを加える。下層にJapaneseが出来る。"文字列";といれてゆけばいい。ボタンなどは省略記号であるケースも多く、ユニーク名の方を意味がわかる言葉にしておいてもいい。Data」は英語表記で「Set」日本語で「初期化」これでもいいんではないでしょうか。アプリ名のローカナイズ文字列のローカナイズと同じで、注意点は、ビルドからクリーニングしておかないといけない点だ。現時点では、状態保存は実装済。保存した状態をひろうところまでは出来たが、状態復元のためには値を戻すだけでなく描写部分もあるので、現在は未実装。状態復元のみ無効の状態だ。今回は、NSMutableArrayに全データを入れて、1つのオブジェクトとして保管する手法をとったが、NSDictionaryでも出来そうだ(本日これについて勉強したが、まだコードには入れていない。NSStringを纏めて保存するようにした。DataStore.hが環境設定を操作するためのメソッド群としているデータ初期化メソッド、initializeDataを作成。起動時はviewDidLoadで呼び出している。(2009.10.29)ResroucesにDefault.pngを含め、起動画面に出るようにした。(2009.11.11)起動時のビューを刷新(Default.png)。3.0で動作するように若干調整ヘルプビューを作成し、ツールバーからアプリの説明を見ることができるようにした。Viewをひとつ追加して、ロード時に完全透明でメインViewに追加しておく。切り替えるときに透明を不透明に切り替えることで2つの画面を変更する手法を使った。切り替わったように見せる。//ローカナイズアプリ説明サイトへ飛ぶボタンをツールバーに追加。@"")]];}GoToHPはdefine定義です。StoreからRejectされた。これで回転するようになるSubView(今回はヘルプメニュー)のY軸が+20ずれる問題(シミュレーションのバグだそうだが)を解決(UILabelのY軸とナビゲーションバーのY軸を+20する横回転したときに、自動的に左右のサイズを調整するようにする。(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientationメソッド(回転した後に実行される)に、iPadかそうでないかの判定をした上で、iPad以外ならば、横向けにしたときにY軸を2/3にした上で、フォントを13に変更。縦向けなら、Y軸を3/2にした上で、フォントを17(デフォルト)。systemFontOfSize:17];}#endifのように変更すればいい。(2010.05.13)iPad実機でのテストを行い。iPadの4方向のLoading画面に対応。iPhoneは4.0ぐらいからしか対応しないと思います。回転はiPhoneにも対応UILaunchImageFile~ipadをInfo.plistに追加し、値をDefaultiPadとする。これで、DefaultiPad.pngがiPad用のLoading画面。Default.pngがiPhone用のLoading画面と分離した。UISupportedInterfaceOrientations~ipadとUISupportedInterfaceOrientationsを追加し、追加できる4つを追加。それぞれ4方向に対するLoadingに対応。DefaultiPad-Portrait.png,DefaultiPad-PortraitUpsideDown.png)を追加。iPhoneは現在未対応だが、同じくDefault-で入れておく。それぞれの画像は、縦横2種類を作って、逆向きは必要なし。NIBにチェックをすることで解決。それが基本であるはずが、触ってしまったのでしょう。ICONをiPadの縦横だけにして、サイズを減らす。HELPビューに、Aboutボタンを付けて、バージョンや著者情報を出す(Alert)結局、Localizable.strings内に記載。arc4randomの方がよりランダムだそうなのでね。iOS3.1.3などの実機で動作させた場合、このメソッドを呼び出してしまって、EXC_BAD_ACCESSとエラーがでて止まってしまう。floatValue]で、OSのバージョンをチェックして条件分岐すること。UIDevice自体に対応しない古いOSのケースや、SDKが非対応(もうそんなレベルのものはないはずだが)の場合にはエラーがでるので条件分岐をする。外部ディスプレイが接続されたときに自動的に、screenDidConnectメソッドが呼びだされる。後は、そのメソッドに外部ディスプレイ表示部分の実装をすればいい。外部ディスプレイの接続が切れた場合に自動的に、screenDidDisconnectが呼び出される。ここはrelease処理だな。}#endifscreenDidConnect内では、UIScreenModeを使って現在の利用可能なモードのうち、最大値をチェック。最大モード(解像度)で外部ディスリプレイに表示するプログラムとなる。(void)screenDidDisConnect{}#endifのようにかこっておく。いまどきそんな古いSDKは使われてないと思いますけどね。抽選後の有効・無効(履歴に残すかどうか)--ひいたけど該当者ない場合。シェイクしたら、抽選ボタンを押したのと同じにする(確認ボタンを出しても面白いかも知れない。