UINavigationBar自定义背景以及按钮

UINavigationBar自定义导航栏背景和按钮,完美支持横屏竖屏旋转,视图控制器可以分别使用自己的导航栏

此方法可以通过Apple审核,导航上的按钮背景需要做,否则看起来不那么和之又谐  . 此方法使用于ios5。0以下


//CustomNavigationBar.h   
@interface UINavigationBar (UINavigationBarCategory)   
UIImageView *backgroundView;   
- (void)setBackgroundImage:(UIImage*)image;   
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;   
@end   
  
//CustomNavigationBar.m   
@implementation UINavigationBar (UINavigationBarCategory)   
-(void)setBackgroundImage:(UIImage*)image   
{   
    if(image == nil)   
    {   
        [backgroundView removeFromSuperview];   
    }   
    else   
    {   
        backgroundView = [[UIImageView alloc] initWithImage:image];   
        backgroundView.tag = 1;   
        backgroundView.frame = CGRectMake(0.f, 0.f, self.frame.size.width, self.frame.size.height);   
        backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;   
        [self addSubview:backgroundView];   
        [self sendSubviewToBack:backgroundView];   
        [backgroundView release];   
    }   
}   
  
//for other views   
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index   
{   
    [super insertSubview:view atIndex:index];   
    [self sendSubviewToBack:backgroundView];   
}   
@end   
  
//YourViewController.m   
- (void)viewWillAppear:(BOOL)animated   
{   
    [super viewWillAppear:animated];   
    [self.navigationController.navigationBar   
        setBackgroundImage:[UIImage imageNamed:@"navigation_bar_bg.png"]];   

 

//判断设备的版本

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000  

    if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){  

       //ios5 新特性  

        [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"titleBar.png"] forBarMetrics:UIBarMetricsDefault];  

    }  

#endif  


}  

posted on 2012-07-16 20:17 linyawen 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/linyawen/archive/2012/07/16/2594127.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值