XCode5のアシスタントエディタ
XCode5のStoryBoardおよびInterfaceBuilderでは、アシスタントエディタを使ってiOS7以降のUIとiOS6までのUIを比較して表示する機能がある。
iOS 7 UI 移行ガイドの「iOS 6への対応」の章にやり方が載っているんだけど、実際にこれを使うとえらくズレたレイアウトを表示して使い物にならない…。
Auto Layoutは対象外なんだろうか。
左がView as
をiOS 7.0 and Later
で表示したStoryBoard、右がアシスタントエディタでiOS 6.1 and Earlier
としてプレビューしたものなんだけど、なんだろうこのズレ。
シミュレータや実機は当然として、StoryBoard表示のView as
をiOS 6.1 and Earlier
にしたときにも正常に解釈できるので、単にアシスタントエディタ周りのバグなんだろうと思うけど。
しかしXCode4と比較すると、InterfaceBuilder周りのAuto Layout操作は別物のように改善されており、非常に便利になっている。
システムが付与して消せない制約がなくなったのと、自動制約付与がかなり的確。今まで通りautoresizingMask
を使っている気分でレイアウトを組んで、そこからReset to Suggested Constraints
を使うだけで、よほど複雑なレイアウトでなければ対応できそう。
ただアニメーションまで考えると、コードベースで制約を付与しなおす必要があるので、API群も覚えないといけないんだけど。