唐突だけど(そうでもない)
手動でviewのサイズ(frame)を計算するのではなく、
Autolayoutを使った方がやっぱり良い(というか使うべき)と思った。
ViewControllerのコンテナを使っていると、viewを重ねる際にその位置やサイズを
調整してやる必要がある。
親のviewに対して、子のviewをどれくらいの大きさでどこに配置するのか決める際だとか。
その時、viewDidLoad: でロードされたviewのサイズが実際に
画面に表示されるサイズと異なっていたりする。
例えば、InterfaceBuilderでコンテナviewを使って親子構造を作った場合(こんな感じ)、
子側(右)のViewControllerの viewDidLoad: の時点では、viewのサイズが親のviewであるコンテナview(左のContainer)のサイズにはなっていない。
よって、このタイミングで子viewの上にのるラベルなどのコンポーネントの位置などを手動で調整すると壮大にずれてしまう。
では、いつそのサイズが確定するかというと、viewWillLayoutSubviews: の模様。
ただし、viewWilllLayoutSubviews: が呼ばれるのは1度ではないので
その都度、調整する処理が実行されるのは無断なような気もしないではない。
だったら、viewDidLoad: でAutolayoutを設定してしまえば1回で済むし早くて楽じゃないの、という帰結。
アップルがAutolayoutを導入した経緯もそんなところにあるような気がしたり、しなかったり。
os7のリリースも近づいてるし、そろそろos5を捨ててos6以降に対応ということにすれば、Autolayoutも使えていろいろ良いことずくめ。マップもだいぶマシにはなったし。
もちろん、os7にだけ対応というのが
一番楽でもっとも望ましいのは間違いないけれど(プログラマ的に)。
なにしろタダだしね!(デバイスが対応している限りは)。