Xcode 5 でカスタムサイズのビューを安全に扱うために : iPhone プログラミング
SPECIAL
.auto-style1 {
border-style: solid;
border-width: 1px;
}
カスタムサイズのビューを Xcode 5.0 で扱う上での癖を知る
Xcode では Attributes inspector の Size 設定を "Freeform" にすることで、UIViewController に設定するルートビューのサイズを自由に調整できるようになっています。
ただ、このように自由サイズに設定したビューを Xcode 5.0 で扱うときには、ひとつだけ注意しないといけないことがあるようでした。
Status Bar を None に設定すること
Xcode 5.0 での Freeform サイズのビューで注意すべきは、UIViewController の Attributes inspector で "Status Bar" を "None" に設定すること、この一点です。
このようにすることで Storyboard 上では、次のような、ステータスバーの存在しないレイアウトとして表示されます。
カスタムサイズのビューの場合は -addSubview メソッドなどを使って既存のビューに追加することになると思うので、そもそもステータスバーを必要になることはまずないと思います。
いずれにしても、Storyboard で設定する "Status Bar" はあくまでもレイアウトの目安として使うものなので、ここでステータスバーを何かに設定したからといって、その設定どおりに振る舞いが変わるわけでもありません。
Status Bar を None に設定しなかった場合に起こり得ること
指定したのとは違うサイズが設定される
カスタムサイズ UIViewController の Attributes inspector で Status Bar が "None" に設定されていないと、そのビューのサイズを設定したときに、指定したサイズとは若干ずれて登録されたりします。
たとえば、とあるカスタムサイズの UIViewController で、ビューの高さを調整したとします。
サイズを入力して Enter を押せば、そのサイズがコントロールに登録されるはずですが…。
ところが、入力したものと少し違うサイズが設定されました。
これはどうやら Attributes inspector で指定されているステータスバーの高さ 20px が、カスタムサイズのビューの高さを指定したときに、入力された値にそれを加味して計算してしまう様子です。
ある時、縦幅が極端に跳ね上がることも
また、Storyboard を開いてみると、ときどきカスタムサイズのビューの高さが大幅に大きく拡張されてしまうことがありました。
こちらもどうやら Attributes inspector で Status Bar が "None" になっていないことが原因のようで、これを "None" に設定したら、勝手に変に自動調整されることはなくなりました。
[ もどる ]