安卓 怎么在framework修改navigationbar的 背景色
发布网友
发布时间:2022-05-11 11:50
我来回答
共1个回答
热心网友
时间:2023-10-11 23:56
最近我突然发现UINavigationbar背景修改的方法不起作用了,代码如下:
@implementation UINavigationBar (CustomImage)
-(void)drawRect:(CGRect)rect
{
UIImage *image = [UIImage imageNamed:@"navigationbar.png"];
[image drawInRect:CGRectMake(0,0,self.frame.size.width,self.frame.size.height)];
}
@end
发现原来是iOS 5的原因,如果运行在iOS 5以下的版本就没有问题了。经过实验以下方法适合iOS 5(放在ViewDidLoad中):
if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationbar.png"] forBarMetrics:UIBarMetricsDefault];
}
第一条if语句的作用是防止程序在iOS 5以下的版本中崩溃。
这样,依靠这两段代码,我的UINavigationbar的背景问题在iOS 5及以下版本中得到了完美的解决。