1.UINavigationItem
导航栏的内容由栈顶控制器的navigationItem属性决定
常用属性:
//左上角的返回按钮
@property (nonatomic, retain) UIBarButtonItem *backBarButtonItem;
//中间的标题视图
@property (nonatomic, retain) UIView *titleView;
//中间的标题文字
@property (nonatomic, copy) NSString *title;
//左上角的按钮
@property (nonatomic, retain) UIBarButtonItem *leftBarButtonItem;
//右上角的按钮
@property (nonatomic, retain) UIBarButtonItem *rightBarButtonItem;
例:
self.navigationItem.title = @"viewController";
//设置了titleView会覆盖title的内容
self.navigationItem.titleView = [UIButton buttonWithType:UIButtonTypeContactAdd];
//设置左上角按钮的文字,并设置点击后的动作
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"leftButton" style:0 target:self action:@selector(leftBarBottonClick)];
//设置右上角按钮的图片,并设置点击后的动作
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:@"rightButton" style:0 target:self action:@selector(rightBarBottonClick)];
//设置右上角显示自定义内容(位置不需要设置,但需要自定义view大小)
UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[rightBtn setImage:[UIImage imageNamed:@"rightButton_normal"] forState:UIControlStateNormal];
[rightBtn setImage:[UIImage imageNamed:@"rightButton_highlighted"] forState:UIControlStateHighlighted];
[rightBtn SizeToFit]; //按钮自适应大小
[rightBtn addTarget:self action:@seletor(rightBarBottonClick) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
2.控制器的生命周期
以下的方法会按照顺序在注释提示的阶段调用
- (instancetype)initWithCoder:(NSCoder *)aDecoder; //从xib或storyboard创建控件
- (void)awakeFromNib; //唤醒控件
- (void)loadView; //开始加载view
//以下是控制器view的生命周期,注意:控制器的view是通过懒加载的方式加载的
- (void)viewDidLoad; //view加载完毕
- (void)viewWillAppear:(BOOL)animated; //view即将呈现
- (void)viewDidAppear:(BOOL)animated; //view已经呈现
- (void)viewWillLayoutSubviews; //view即将布局子控件
- (void)viewDidLayoutSubviews; view已经完成布局子控件
- (void)viewWillDisappear:(BOOL)animated; //view即将消失
- (void)viewDiaDisappear:(BOOL)animated; //view已经消失
//*******************************
- (void)dealloc; //销毁,内存释放
3.UIImageRenderingMode图片渲染模式
图片的渲染模式指是否使用Tint Color,例如默认状态下系统提供的按钮均被渲染为蓝色
//设置图片的渲染模式
[image imageWithRenderingMode:UIImageRenderingModeAutomatic];
//获取图片的渲染模式,这是一个只读属性
image.renderingMode;
//UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
//UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。
//UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。