UINavigationBar自定义导航栏背景和按钮

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


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

 

 

Objective-c代码   收藏代码
  1. //CustomNavigationBar.h  
  2. @interface UINavigationBar (UINavigationBarCategory)  
  3. UIImageView *backgroundView;  
  4. - (void)setBackgroundImage:(UIImage*)image;  
  5. - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;  
  6. @end  
  7.   
  8. //CustomNavigationBar.m  
  9. @implementation UINavigationBar (UINavigationBarCategory)  
  10. -(void)setBackgroundImage:(UIImage*)image  
  11. {  
  12.     if(image == nil)  
  13.     {  
  14.         [backgroundView removeFromSuperview];  
  15.     }  
  16.     else  
  17.     {  
  18.         backgroundView = [[UIImageView alloc] initWithImage:image];  
  19.         backgroundView.tag = 1;  
  20.         backgroundView.frame = CGRectMake(0.f, 0.f, self.frame.size.width, self.frame.size.height);  
  21.         backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;  
  22.         [self addSubview:backgroundView];  
  23.         [self sendSubviewToBack:backgroundView];  
  24.         [backgroundView release];  
  25.     }  
  26. }  
  27.   
  28. //for other views  
  29. - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index  
  30. {  
  31.     [super insertSubview:view atIndex:index];  
  32.     [self sendSubviewToBack:backgroundView];  
  33. }  
  34. @end  
  35.   
  36. //YourViewController.m  
  37. - (void)viewWillAppear:(BOOL)animated  
  38. {  
  39.     [super viewWillAppear:animated];  
  40.     [self.navigationController.navigationBar  
  41.         setBackgroundImage:[UIImage imageNamed:@"navigation_bar_bg.png"]];  
  42. }  
    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值