Storyboardで作成した画面のナビゲーションバーの高さを変更したくて色々調査したので、結果をまとめておきます。
まず、storyboardで画面遷移を定義します。
当然 Navigation Controllerを配置します。NavigationBarのカスタムクラスを作成します。
-sizeThatFits:
でNavigationBarのサイズを返します。
defaultのheightは 44.0 です。
また、高さを拡大すると、すべてのsubviewの上部分がその分だけ空いてしまうので、NavigationBarの中央に来るよう位置を変更します。
@implementation XXCustomNavigationBar
- (CGSize)sizeThatFits:(CGSize)size
{
CGSize barSize = [super sizeThatFits:size];
barSize.height += 20.0f; // 高さを変更
return barSize;
}
- (void)layoutSubviews
{
[super layoutSubviews];
// vertically center
float centerY = self.bounds.size.height / 2.0f;
for (UIView *view in self.subviews) {
// 位置変更
CGPoint center = view.center;
center.y = centerY;
view.center = center;
}
}
@end
- 作成したカスタムクラスをNavigation Controllerに紐付けます
Storyboard にて Navigation Controller Scene
-> Navigation Controller
-> Navigation Bar
を選択します。
Custom Class
で 作成したカスタムクラス (この例では XXCustomNavigationBar
) を指定します。
これで実行すると、Navigation Barが指定した高さで表示されるはずです。
0 件のコメント:
コメントを投稿