除了扩展drawRect外另外一种自定义导航栏背景吗?
来源:互联网 发布:怎样判断网络通不通 编辑:程序博客网 时间:2024/05/18 01:11
查了很多资料,网上的自定义导航栏的方法,清一色的是扩展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
- 除了扩展drawRect外另外一种自定义导航栏背景吗?
- IOS 自定义导航栏背景
- 自定义导航栏背景颜色
- 自定义UINavigationController导航栏背景
- JFrame嵌套背景另外一种实现方式
- UINavigationBar自定义导航栏背景和按钮
- UINavigationBar自定义导航栏背景…
- UINavigationBar自定义导航栏背景和按钮
- 导航栏点击背景变色,点击另外一个之后这个背景色消失
- UInavigationBar自定义导航栏背景和按钮(二)
- Swift- 自定义导航栏背景、标题和返回按钮属性
- Enhancement point的开发和修改(除了出口和BADI的另外一种增强方式)
- 发现了除了在adapter中加载图片的另外一种方法
- iOS开发问题----自定义导航栏点击范围扩展
- 设置导航栏背景
- 导航栏变化背景
- IOS 实现自定义的导航栏背景以及自定义颜色的状态栏
- Base: ACID外的另外一种选择
- 火箭球迷惊讶林书豪是韩国人 称这个笑话不好笑
- 黑马程序员01——.NET框架基本介绍
- 《JavaWeb---JQuery淡入淡出效果的实现》
- poj 3522 Slim Span
- hdu 4081 最小生成树
- 除了扩展drawRect外另外一种自定义导航栏背景吗?
- core java整理2.0
- github使用一-入门
- Java基础学习6_多线程(线程间通信--生产者消费者)
- 客户端的gzip解压
- IT笑话五则
- 程序员打油诗
- 《影响力》读书笔记,第四章 喜好
- Java 导入 导出 excel jxl.Workbook