您的位置:首页 > 产品设计 > UI/UE

UINavigationBar 设置背景图片

2012-04-18 13:35 411 查看
#import <QuartzCore/QuartzCore.h>

 

@interface DDNavigationViewController : UINavigationController<UINavigationControllerDelegate>
{

    CALayer *_barBackLayer;

}

@end

@implementation DDNavigationViewController

 

- (id)initWithRootViewController:(UIViewController *)rootViewController
{

    self =
[super initWithRootViewController:rootViewController];

    self.delegate = self;

    return
self;

}

- (void)loadView
{

    [super loadView];

    

    UINavigationBar *bar
= self.navigationBar;

 

    CALayer*layer
= [CALayer layer];

    UIImage *navBarImage
= [UIImage imageNamed:@"navigationBarBackground.png"];

    layer.contents =
(id)navBarImage.CGImage;

    layer.frame= CGRectMake(0,
0, 320,
navBarImage.size.height);

    [bar.layer insertSublayer:layer atIndex:0];

    _barBackLayer =
layer;

}

 

#pragma mark -

#pragma mark UINavigationControllerDelegate

- (void)navigationController:(UINavigationController *)navigationController
didShowViewController:(UIViewController *)viewController
animated:(BOOL)animated
{

    [_barBackLayer removeFromSuperlayer];

    [navigationController.navigationBar.layer insertSublayer:_barBackLayeratIndex:0];

}

@end

转至
http://blog.sina.com.cn/s/blog_4cd8dd130100tyek.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息