久しぶりのプログラミングネタです。
AutoLayoutでの位置調整は慣れれば結構簡単だった
AutoLayoutは各コントロールの位置やサイズに「制約」を与えることにより、各iPhoneの画面サイズに対応させることができるというもの。大まかに言うとこんな感じなのです。
大切なことは基準を決めること
画面の上部を基準にしてレイアウトするか、下部を基準にするか。それを決めることが一番はじめにする必要があります。
困ったら入れ子
例えば、大きさの違うボタンを横に並べて、その2つのボタンの総幅の中心を画面の中心にしたい場合。
新しくUIViewを作り、その中に2つのボタンを入れます。
新しく作ったViewを中央揃えにすればオッケーです。
で、本題の困ったこと
AutoLayoutの各サイズはviewDidLoadでは決まらない
WeightRecordというアプリをSwift化しつつ、AutoLayoutにも再挑戦していて、まさにここで戸惑いました。
viewDidLoadでダメなら、viewDidAppearではどうかと試したがダメ。
で、詳しいことは詳しい解説をされてるサイトにお任せして結論を書くと、
「viewDidLayoutSubviews」では、各コントロールの確定したサイズを拾えます。
感想
初歩的なことでした。リファレンス等アップルの提供しているものをしっかり読んでいたらはまらなかったかも。
AutoLayoutが現れる前のライフサイクルは勉強してたのですが、SDKが新しくなったら、毎度毎度勉強し直さないとダメですね。
って、これまた初歩的でした。。。