本文主要是介绍UINavigationBar 背景设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
虽然现在很多的UINagationBar都是假的 将系统的隐藏起来 自己做
5.0后navigationBar系统自带了方法:
[self.navigationBar setBackgroundImage:(UIImage *) forBarMetrics:(UIBarMetrics)];
但是有时候只要改变一些背景 就能满足我们的需求
在网上看了下了 5.0一下系统 自定义UINagationBar的背景设置
//5.0以下系统自定义UINavigationBar背景
@implementation UINavigationBar(setbackgroud)
//重写此方法
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"navigationbar_background.png"];
[image drawInRect:rect];
}
@end
上面的在5.0中就不适应了 所以我在网上搜了写资料说可以通过 下面的方法来实现
#1.局部UINavigationBar 背景的实现(4 5)
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
UIImage *backgroundImage = [UIImage imageNamed:@"myBackgroundImage.png"];
if (version >= 5.0) {
[self.navigationController.navigationBar setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault];
}
else
{
[self.navigationController.navigationBar insertSubview:[[[UIImageView alloc] initWithImage:backgroundImage] autorelease] atIndex:1];
}
#2.全局(4 5)
- (UIImage *)barBackground
{
return [UIImage imageNamed:@"topNavigationBar.png"];
}
- (void)didMoveToSuperview
{
//iOS5 only
if ([self respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
{
[self setBackgroundImage:[self barBackground] forBarMetrics:UIBarMetricsDefault];
}
}
//this doesn't work on iOS5 but is needed for iOS4 and earlier
- (void)drawRect:(CGRect)rect
{
//draw image
[[self barBackground] drawInRect:rect];
}
@end
//个详细 http://blog.csdn.net/wave_1102/article/details/4768212
这篇关于UINavigationBar 背景设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!