我一直在寻找一种方法来更改我的 NavigationBar
的背景图像并在用户浏览应用程序时控制我的 NavigationBar
的外观。
我知道更改背景图片的公认方法是:
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"navbar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
但是,这会改变整个应用程序中 NavigationBar
的外观。当用户从一个 View 导航到下一个 View 时,如何更改 NavBar
的背景图像?
预先感谢您的帮助!
最佳答案
您需要在当前页面或当前要使用的适当图像的某处设置一些状态,可能在您的每个 viewWillAppear:
方法中。然后修改上面的 drawRect:
函数以引用该状态。
要重新绘制条形图,请在更新状态时调用 [myNavigationBar setNeedsDisplay]
。这将导致调用 drawRect
。
关于iphone - 如何在每页的基础上更改导航栏的背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483921/