如何设置UINavigationBar背景怎么换
来源:互联网 发布:内向者适合做淘宝吗 编辑:程序博客网 时间:2024/04/28 10:38
利用objective-c的Category语法 扩展UINavigationBar 类具体代码为@implementation UINavigationBar (UINavigationBarCategory)- (void)drawRect:(CGRect)rect { // Drawing code UIImage *img = [UIImage imageNamed: @"navbar_background.png"];CGPoint point = {0,0};[img drawAtPoint:point];}@end ////////////////////方法2////////////////////////////////////////////////////@implementation UINavigationBar (UINavigationBarCategory) - (void)drawRect:(CGRect)rect {//加入旋转坐标系代码 // Drawing codeUIImage *navBarImage = [UIImage imageNamed:@"LOGO_320×44.png"];CGContextRef context = UIGraphicsGetCurrentContext();CGContextTranslateCTM(context, 0.0, self.frame.size.height);CGContextScaleCTM(context, 1.0, -1.0);CGPoint center=self.center; CGImageRef cgImage= CGImageCreateWithImageInRect(navBarImage.CGImage,CGRectMake(0, 0, 1, 44));CGContextDrawImage(context, CGRectMake(center.x-160-80, 0, 80,self.frame.size.height), cgImage);CGContextDrawImage(context, CGRectMake(center.x-160, 0, 320,self.frame.size.height), navBarImage.CGImage);CGContextDrawImage(context, CGRectMake(center.x+160, 0, 80,self.frame.size.height), cgImage);}@endold codeCGContextDrawImage(context, CGRectMake(0, 0, self.frame.size.width,self.frame.size.height), navBarImage.CGImage);方法三:有了这个,你还会扩展drawRect自定义导航栏背景吗?查了很多资料,网上的自定义导航栏的方法,清一色的是扩展navigationBar的drawRect方法.然而这样的扩展会影响到工程里所有的navigationBar.或许你并不想这么做,而且很多不合常规的UI用这种方法根本没法实现.做了无数实验,尝试了各种方法,今天跟大家分享一个新方法:#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
0 0
- 如何设置UINavigationBar背景怎么换
- UINavigationBar 背景设置
- iPhone修改UInavigationBar背景(title换图片)
- UINavigationBar设置背景 外国网站
- 设置uinavigationbar的背景颜色
- IOS UINavigationBar 背景及按钮颜色设置
- 如何为UINavigationBar设置背景图片
- 如何为UINavigationBar设置背景图片
- 如何为UINavigationBar设置背景图片
- 在ios中设置UINavigationBar的背景…
- iOS设置UINavigationBar的背景颜色或背景图片
- iOS设置UINavigationBar的背景颜色或背景图片
- 如何设置UITabBar和UINavigationBar的内容
- UINavigationBar-设置
- UINavigationBar设置
- 修改UINavigationBar的背景
- 自定义UINavigationBar的背景
- 动态修改UINavigationBar背景
- 抓包神器fiddler
- UIScrollView的重要属性总结,以及UIScrollViewDelegate协议的使用
- 《时间管理》读后感
- POJ 3208 Apocalypse Someday(数位DP)
- 跳动的球
- 如何设置UINavigationBar背景怎么换
- 十大元帅
- UINavigationController多视图控制器
- NSDate 日期类的使用
- iOS总结之UIScrollView
- Distinct Subsequences
- STM32程序下载简介
- 可重复覆盖的DLX
- Java泛型中E、T、K、V等的含义