こんにちは。むらいです
全然たいした内容じゃないのですが
ひっさびさにハマったので、メモがてら書いていきます。
objective-cネタです。
uiscrollviewをstoryboardを使って配置する際に、
contentsizeを指定しても全然変化がありませんでした。
まず、storyboardでviewcontrollerを配置し、その上にscrollviewを置きました。
どちらもheightはデフォルトです。(私の場合はiPhone4画面で作っていたので460です。)
で、scrollviewのheightを可変にしたかったので、viewdidloadでcontentsizeを指定しても変化なし!!
なぜ!?
useautolaoutのチェックを外すと動きます。という記事を見ましたが外したくなかったので、
なんとか方法はあるはずと探したところ、
「AutoLayoutの場合、viewWillAppear後に、viewの位置決定が行われるようです。」
という記事を発見。
http://www.zero4racer.com/blog/988
どうやら、scrollviewに限らずviewはviewDidLayoutSubviewsでサイズが決まるようです。
(iOS6でも、AutoResizingを使用している場合は、viewWillAppearでframeは決定しているようです。)
どうりで、nslogしてもサイズが返ってこないなと思ってました。
なので、contentsizeをviewDidLayoutSubviewsで行うようにしたところ、
scrollviewのサイズが変更され、きちんとスクロールされるようになりました!