切换到iOS5,我想使用以下代码段来使用自定义样式UINavigationBar
:
if ([navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:
forBarMetrics:)]) {
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavigationBar.png"]
forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavigationBarLandscape.png"]
forBarMetrics:UIBarMetricsLandscapePhone];
}
这很有效,但是:我的自定义图像有圆角(例如附加的图像),导致以下情况:
从纵向模式开始,看起来很好。
更改为横向模式也看起来不错。
然后改回画像模式似乎不会将图像更改为 NavigationBar.png ,因此右上角没有圆角。
对于如何解决这个问题的任何建议表示赞赏。
//编辑
将以下代码添加到我的viewController中会删除此“错误”,但这不是正确的解决方案!?!
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation
duration:duration];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBar.png"]
forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarLandscape.png"]
forBarMetrics:UIBarMetricsLandscapePhone];
}
答案 0 :(得分:0)
由于iOS6默认会引入圆角,这个问题很快就会消失。