0

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

UIImage *navigationBarBackground = [UIImage imageNamed:@"HeaderNavBar.png"];
[[UINavigationBar appearance] setBackgroundImage:navigationBarBackground forBarMetrics:UIBarMetricsDefault];

我使用以下行将其删除:

[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

这适用于每个 ios,除了 ios 5.1 ......有人知道为什么吗?!

4

2 回答 2

0

“当视图的内容发生更改时,您不会直接重绘这些更改。相反,您可以使用 setNeedsDisplay 或 setNeedsDisplayInRect: 方法使视图无效。” (查看编程指南)。重绘视图后你还有这个问题吗?

另请参阅:UIView 类参考:setNeedsDisplay

于 2013-02-12T15:36:16.810 回答
0
[[UINavigationBar appearanceWhenContainedIn:[self class], nil] setBackgroundImage:navigationBarBackground forBarMetrics:UIBarMetricsDefault];

接着:

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

这里推荐。

于 2016-02-17T17:22:29.283 回答