6

通常の NavController の動作は、ポート/ランドス ケープにあるときにサイズを変更することです。高さ 44px から 32px まで (頭のてっぺんから) 信じています。

私はストーリーボードを使用しており、コントローラーではなくナビゲーションバーを VC に含めました。縦向きと横向きの間で回転する場合、ナビゲーション バーのサイズは自動的に変更されません。

私はこの回答を見ましたが、これは役に立ちません:回転時に UINavigationBar のサイズを変更する

ナビゲーション バーは、App Delegate に読み込まれる外観を介したコントローラーです。

UIImage *portraitImage = [UIImage imageNamed:@"mainNavBar"];
UIImage *landscapeImage = [UIImage imageNamed:@"mainNavBarLandscape"];
[[UINavigationBar appearance] setBackgroundImage:portraitImage forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:landscapeImage forBarMetrics:UIBarMetricsLandscapePhone];

[[UINavigationBar appearance] setBackgroundColor:[UIColor blackColor]];
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                       [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], UITextAttributeTextColor,
                                                       [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5],UITextAttributeTextShadowColor,
                                                       [NSValue valueWithUIOffset:UIOffsetMake(0, 1)],
                                                       UITextAttributeTextShadowOffset,nil]];

[[UINavigationBar appearance] setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin];

残念ながら、最後の部分は違いがなく、ナビゲーションバーが複数のコントローラーに含まれるため、上記の質問のすべての VC への回答で同じグルーコードを繰り返して回転時にサイズを変更したくありません。

4

3 に答える 3

4
[[UINavigationBar appearance] setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin];

しかし、あなたは柔軟な高さを言いませんでした。しかし、私が理解しているように、高さはまさにあなたが柔軟にしたい特徴です.

于 2013-04-30T16:50:44.110 に答える