使用导航控制器的笔记
来源:互联网 发布:电视连接网络 编辑:程序博客网 时间:2024/05/20 04:11
使用导航控制器的笔记
1 设置title
下面这句代码设置之后会让当前控制器的title和下一个控制器的‘返回’处都显示‘标题’字样,
// 设置标题
self.navigationItem.title= @"第一个控制器";
或
self.title = @"标题";
但上图效果这并不是我想要的,我想要对返回按钮单独设置,于是就这么做:
// 设置标题
self.title = @"标题";
//创建一个返回按钮
UIBarButtonItem*item = [[UIBarButtonItem alloc] initWithTitle:@"返回"style:UIBarButtonItemStylePlain target:nil action:nil];
//修改返回按钮的样式
self.navigationItem.backBarButtonItem = item;
恩,不错,这才是我想要的。
2 设置导航栏左右两边:
//创建一个 UIBarButtonItem
UIBarButtonItem*item1 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCameratarget:nil action:nil];
UIBarButtonItem*item2 = [[UIBarButtonItem alloc]initWithTitle:@"HELLO"style:UIBarButtonItemStylePlain target:nil action:nil];
//设置左右两边的按钮
self.navigationItem.leftBarButtonItem= item1;
self.navigationItem.rightBarButtonItem= item2;
如果我要在左右两边添加多个按钮,使用这个属性:
self.navigationItem.leftBarButtonItems = @[ item1, item2 ];
self.navigationItem.rightBarButtonItems= @[ item1, item2 ];
// 使用图片创建item,所选图片是高亮的
UIImage* image = [UIImage imageNamed:@"navigationbar_friendsearch_highlighted"];
//对image做处理
image = [imageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem* item5 = [[UIBarButtonItem alloc] initWithImage:imagestyle:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.leftBarButtonItem = item5;
如果上面的红色代码注释掉(即对image进行处理),结果如下图:
如果使用上面红色标记的的代码(即对image进行处理),结果如下图:
产生的结果差异在于:苹果自己内部对导航栏默认做了一些渲染处理,所以需要使用这句代码image = [imageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];来让图片显示真身,取消默认的渲染效果。
3 自定义标题
有两种方法:
//1利用titleView属性
UILabel * titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 44)];
titleLabel.font = [UIFontboldSystemFontOfSize:20];
titleLabel.textColor = [UIColorlightGrayColor];
titleLabel.textAlignment =NSTextAlignmentCenter;
titleLabel.text = @"自定义标题";
self.navigationItem.titleView =titleLabel;
// 自定义标题(2)
NSDictionary* attr = @{NSFontAttributeName : [UIFontsystemFontOfSize:10],NSForegroundColorAttributeName : [UIColor redColor] };
[self.navigationController.navigationBarsetTitleTextAttributes:attr];
此外,导航栏还有一些其他的属性(关于3个颜色):
// 1主题的颜色
[self.navigationController.navigationBarsetTintColor:[UIColor orangeColor]];
//2 导航栏 bar的背景颜色
[self.navigationController.navigationBarsetBackgroundColor:[UIColor purpleColor]];
观察下图,显然,苹果又自作聪明的给我们的设置的颜色做了些渲染,看着就像是在紫色上面加了一层模糊的效果,专业术语叫做高斯模糊,也叫毛玻璃,使用下句代码就可以取消渲染。
// 高斯模糊(毛玻璃)设置为NO不透明
self.navigationController.navigationBar.translucent= NO;
//3 bar的颜色
[self.navigationController.navigationBarsetBarTintColor:[UIColor redColor]];
- 使用导航控制器的笔记
- 导航控制器的使用
- iOS导航控制器的使用
- UINavigation导航控制器的使用
- 导航控制器的使用01
- 导航控制器的使用02
- 导航控制器的使用03
- 导航控制器 导航栏的基本使用
- IOS导航控制器的随堂笔记
- 控制器与导航笔记
- iphone开发导航控制器的使用
- iphone开发之导航控制器的使用
- iphone开发导航控制器的使用
- IOS-导航视图控制器的使用
- 导航控制器的使用——IOS
- 导航控制器UINavigationController的简单使用
- UI:导航控制器UINavigationController的使用
- 导航控制器的简单使用--Swift
- javascript数组 添加元素
- UEditor 报错:Uncaught ReferenceError: UE is not defined; Uncaught ReferenceError: UM is not defined
- 作为程序员在公司不要与和同事说的几个要点
- HttpClient 教程 (一)
- HDU 2295 Radar(二分+重复覆盖)
- 使用导航控制器的笔记
- D2
- JAVA SE 学习笔记
- 为什么数据分析师要用产品思维?
- 个人总结(2.24)
- 【CSS3】调用动画
- 深度学习:能击败欧洲围棋冠军,还能防恶意软件
- python学习之11 加密解密hashlib
- 一道有关static的题目