iPhoneSDK覚書:UITableViewHeaderFooterViewと闘争せよ

XIBでUITableViewHeaderFooterViewのデザインをしたがどうにも背景色が設定できない。
というかUITableViewHeaderFooterView.backgroundColorが非推奨とかどうよ。
XIBのデザインではcontentViewが設定できないっぽい(readonlyだから?)ので、やむなく全部手書きした。
initWithFrameで必要な子Viewを定義して、最後に

[self.contentView setBackgroundColor:[UIColor lightGrayColor]];

てな感じ。
はじめはUITableviewDelegateの

-(void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section

のメソッドで(UITableViewCellでは常套手段だけど)やるんかなぁとおもったけど、こっちでもはねられたのでメモる。
まぁViewの設定をする

-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

でははねられないし、StoryBoardやってるとどうでもいい話なのかもしれないけど。

iPhoneSDKiOS7覚え書き

むっちゃ変わったわー。

ということで小技というかちょっとしたことの覚え書き。いろんな所から拾って来た情報を集積する感じ。

【iOS7専用ロジックの実装】
正確には「iOS6.1以下」を見分けるロジックだが…まぁ不等号変えればいいだけの話。
if(floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1){} なんでこんなことせにゃならんのかというと、UINavigationBar回りの仕様が全然違うから。 デフォルトが「バー色白、ボタンTintは空色、半透明」なので、appearanceを設定してtintとか設定してやらないといけない。一応iOS6系統のデフォルトは半透明についてはNOがデフォルトということになっているようなのでいいのだが。 色回りはUIBarButtonItemともどもTintを設定しないといけない。 ところでUIBarButtonItemのtintさんはUIBarButtonStyleBorderedの場合はボーダーボタンの背景色をさすんですが、UIBarButtonStylePlainの場合はボタン本体の色をさします。色指定面倒くせぇ。 今回弄ったアプリはUINavigationBarにあるボタンだけがBorderedだったので、こんなTintの設定で逃げました。appearanceWhenContainedInに指定したクラスだと、親クラスによるアピアランスの制限をしてくれるんですね。よかったよかった。 [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:[UIColor colorWithRed:10/255.0 green:20/255.0 blue:50/255.0 alpha:1]]; このappearanceの設定はiOS6以下のデザインとiOS7のデザインをわける(iOS7だとフラットデザイン風のカスタム画像を使う、とか)時にも重宝。 【UIPopoverControllerの罠】 UIPopoverControllerも従前は黒っぽい背景だったのが真っ白になる。黒背景を信じて設定したコンテンツの色が酷いことになったのでこれも修正。 【UIPickerViewの罠】 どのくらい罠かというと従前はドラム部分は自前で不透明のコンポーネント持ってたのが透明になるんですよ! 一番わかり易いのは「時計」のタイマー設定部分ですかね。 おかげで面白いように見づらくなる部分があってフイタ。 【レイアウト】 UIViewControllerで「self.view.frame」使って子ビューのframe定義したら位置がずれた…iOS7からはレイアウトがフルスクリーン前提なので、frameのoriginが下にずれる(ステータスバー+ナビゲーションバーの分)という罠! self.view.boundsを使えばよかったんだけど気づかないでリリースしないでよかった…。 他にもあるけど、とりあえずにぎやかし的記事なのでこのくらいに(ぉぃ)

iPhoneSDKこんにちは山ライオン

iOS7対応の諸々をやる関係でXCodeを最新版のβにしなきゃいけない関係でDLしてみたらアイコンにNGマーク(丸に斜線引いてあるマーク)。

要求スペックにMountain Lionって書いてある

次期OSシーライオンマーベリックが出るまでギリギリのところで気がついた失態!
ケジメだなんだと言ってもしょうがないのでヤマダさんで3000円分買って(+500円のクーポンが後日メールで来るキャンペーンをやってた)Mountain Lionを入れた。

そしたらXCodeとかむっちゃ変わってるわけですよ。iOS7自身の挙動はどうだかしらないけど、必要なアイコンリソースが山と増えたり、レイアウトのデフォルト値設定が違うのでけっこう困る。
デザインポリシーが違うのはわかるし、それを知ってて放置している俺が良いことをしてるわけじゃないけどこれは惨いorz

で、実機でも見ないと真の安心は得られないということで、iPhone4を初期化してiOS7のGM Seedを遅まきながら導入。
次の週末には新OS、来月にはMacOSも新しくなるのにちょいと泥縄すぎる…と泣きたくなりますが止むを得ないなぁ。

結果としてバタバタしたもののなんとかなった、という感じ。多分。漏れはないはず。
ただし、今までのやり方(StoryBoardも使ってなかったので、モダン()な開発手法に合わせるのにはかなり時間がかかる)を継承できないところが痛い。開発ペース落ちるだろうし、これからの開発物の設計も大変だぞー(嘆)

iPhoneSDKれじ☆すた

正直どこまで売れるのかよくわからないアプリではあるが、ともかく世に問うてみようと思ったアプリの1つではあるので自己満足。

これの原型版はン年前のコミケだか例大祭1週間くらい前で「CoreDataの使い方の勉強がてら(下手すると所謂Master-Detailのアプリも初)の作ってみよう」ということで作ったアプリで、味も素っ気もなかったのがそこそこ凝った画像デザインになって、それをしばらく放置してたのを1から作り直したアプリ。

そういう理由でアプリ名が(当時の世相を反映している)「れじ☆すた」ということなのです(え?)

まぁ茶化してる部分もありますが、基本「自分がまともにレジ打ちに使える」ことは念頭に置いていますし、わりとしっかり想定した動作チェックをしてるはずなので(過去そういっておいて致命的な不具合出すことが多数あったので自分に信頼がおけませんが…)、サークル参加される方々でご興味ご関心ございましたら是非是非。
唯一、出力したデータの様式については(今回足した機能でもあるので)いろいろデータの表現は使い勝手でクレームが来るんじゃないかと思うけど、そこは随時要望対応でどうにかなる(データ打ち込みさえ消えなければ出力しなおせるしどうにでもなるはず)とあたい信じてる。

#正直どこまでどう対応していいのかわからないので「集計データだけをベタに出すように」意識して作ってはあるんだけどどうなんだろう

ちなみにお手元に旧型の3GSとかありましたら一旦初期化しつつ、れじ☆すただけを入れてペアレンタルコントロールでアプリを制限するなどすると、iPhoneが正真正銘の嘘レジ端末として使えるということになるのでご検討を(何)

iPhoneSDKUICalaenderViewとかないのかよ!

MAC-ISV様経由で、TapkuLibraryなるカレンダーライブラリの存在を知って、ちょっと組み込むのに使ってみる。

このサイトでカレンダーの日本語化の話がされてるけど、ソースを眺めたらデフォルトで日本語になっとるやんか…

というのに気がつかなかった理由を書いておく。
つまり、シミュレータの日付書式が英語(言語設定は日本語だが、別途ある)だったのである。

強制的に日本語にしたければ
dateFormat.locale = [[NSLocale alloc] initWithLocaleIdentifier:@”ja_JP”];
を追加すればいいだけだよな、と書こうとして気がついた…orz

iPhoneSDK今日のプログラミング

起動した時間をロギングするプログラム、称して「起動計時」というアプリを作成中。
それはそれとして別方面で凹む事案があって泣けてくるが…とりあえず忘れよう。

とりあえず時間を記録して表示するところまではうまくいってるようにみえないでもないがなんか微妙な箇所多数。とりあえず帰ってこれを直すのが深夜寝れなかった場合のタスクになりそうだなぁ…

iPhoneSDK今週のプログラミング

LB-n X-ACの命中部位決定アプリとか言うのを組みたくなった(著しく範囲の狭い需要)
===
日曜日はヲ勉強会らしいが正直行くだけの心理的金銭余裕がない。
#手元に金があるのだが「それを上京するのに使う」というのに抵抗感が強い。工房行きもよく耐えてる俺。

===
NPCメモるで数点デグレを指摘されたので修正。テストに工数を割かないのは僕の悪い癖なんだけど、どうにもならん部分なのかねぇ…あきらめたらそこで品質管理終了だよ。

Virtual TRPG Boardはバージョン2.1.1を予定から1機能減で審査へ。オブジェクトを「回す」機能がどうもうまく行かない。回転の中心点が原点であって、「画像の中心」にないせいなんだが、ここんところを把握する必要があるので実装は実験した後かのぉ…

次のアプリは実用系で「アプリが起動・タスクスイッチやスリープ復帰でアクティブになった時間」を逐一記録して、それらの時間から「時間帯」を作って「このときは何をしてた」とか入力するスタイルのアプリを作ろうかと思っている。アプリ名「起動計時」。