UINavigationBar外观设置背景图像:零不´;无法在ios 5.1上运行

UINavigationBar外观设置背景图像:零不´;无法在ios 5.1上运行,ios,Ios,我使用以下行设置UINavigationBar外观: UIImage *navigationBarBackground = [UIImage imageNamed:@"HeaderNavBar.png"]; [[UINavigationBar appearance] setBackgroundImage:navigationBarBackground forBarMetrics:UIBarMetricsDefault]; [[UINavigationBar appearance] setBac

我使用以下行设置UINavigationBar外观:

UIImage *navigationBarBackground = [UIImage imageNamed:@"HeaderNavBar.png"];
[[UINavigationBar appearance] setBackgroundImage:navigationBarBackground forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
我用以下行删除它:

UIImage *navigationBarBackground = [UIImage imageNamed:@"HeaderNavBar.png"];
[[UINavigationBar appearance] setBackgroundImage:navigationBarBackground forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
这适用于所有ios,除了ios 5.1…有人知道为什么吗

“当视图的内容更改时,您不会直接重新绘制这些更改。相反,您可以使用setNeedsDisplay或setNeedsDisplayInRect:方法使视图无效。”()。在重新绘制视图后,您是否仍然存在该问题

另见:

然后:

[[UINavigationBar appearanceWhenContainedIn:[self class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

建议使用。

我的视图没有名为setNeedsDisplay的方法?!
[self.view setNeedsDisplay]
怎么样?应该重新绘制整个视图,但最好看看它是否清除了您的UINavigationBar背景。
[UINavigationBar外观]setNeedsDisplay]
适合我。这给了我NSInvalidArgumentException',原因:'-[NSMethodSignature getArgumentTypeAtIndex::索引(2)超出范围[0,1]'