iOS阶段学习第31天笔记(UINavigationBar介绍)
iOS学习(UI)知识点整理
一、UINavigationBar 的介绍
1)概念:UINavigationBar 是用于定义导航栏按钮的一个类对象
2)在使用UINavigationBar之前必须先初始化导航栏 实例代码:
1 //初始化导航栏 2 FirstViewController *firstVC = [[FirstViewController alloc] init]; 3 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:firstVC]; 4 self.window.rootViewController = nav; 5 6 //appearance一定要在初始化之前使用 7 //修改默认的UINavigationBar的导航条背景颜色, 8 [[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]]; 9 10 //修改默认的导航栏文字即图标颜色 11 [[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 12 13 //设置导航栏背景图片 14 [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"icon"] forBarMetrics:UIBarMetricsDefault];
3)setNavigationBarHidden 设置隐藏导航栏 例如:
1 [self.navigationController setNavigationBarHidden:YES];
4)title 设置导航栏标题 例如:
1 self.title = @“First View”; 2 //注意:在一处做此设置后,后面的视图控制器如未作设置也会使用此标题
5)titleView 用于设置导航栏中间的视图 例如:
1 UIView *navBarView = [[UIView alloc] init]; 2 navBarView.frame = CGRectMake(0, 0, 100, 30); 3 navBarView.backgroundColor = [UIColor clearColor]; 4 navBarView.layer.cornerRadius = 8.0f; 5 navBarView.clipsToBounds = YES; 6 7 UIButton *btn1 = [[UIButton alloc] init]; 8 btn1.frame = CGRectMake(0, 0, 50, 30); 9 btn1.backgroundColor = [UIColor blueColor]; 10 [btn1 setTitle:@"消息" forState:UIControlStateNormal]; 11 [btn1 addTarget:self action:@selector(btn1Tapped:) forControlEvents:UIControlEventTouchUpInside]; 12 btn1.tag = 1000; 13 [navBarView addSubview:btn1]; 14 15 UIButton *btn2 = [[UIButton alloc] init]; 16 btn2.frame = CGRectMake(50, 0, 50, 30); 17 btn2.backgroundColor = [UIColor blueColor]; 18 [btn2 setTitle:@"电话" forState:UIControlStateNormal]; 19 [btn2 addTarget:self action:@selector(btn1Tapped:) forControlEvents:UIControlEventTouchUpInside]; 20 btn2.tag = 1001; 21 [navBarView addSubview:btn2]; 22 23 //在导航栏中的中间位置加入我们自定义的view, 24 //程序会把我们设置的view自动居中 25 self.navigationItem.titleView = navBarView;
6)UIBarButtonItem 导航栏上的按钮元素 常用的系统自带的Bar有
/*
* UIBarButtonSystemItemDone 按钮样式为文字Done、
* UIBarButtonSystemItemAdd 按钮样式为图片的加号
*UIBarButtonSystemItemCamera 按钮样式是图片的照相机
*UIBarButtonSystemItemFixedSpace 是一个占位符 ,可以设置width
*UIBarButtonSystemItemFlexibleSpace 是一个占位符,固定宽度,导航栏上单独一个按钮
*/
例如:
1 //系统自带照相机按钮 2 UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(barButtonTapped:)]; 3 4 //占位符按钮 5 UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:@selector(barButtonTapped:)];
7)rightBarButtonItem 设置导航栏右侧单个按钮 例如:
1 self.navigationItem.rightBarButtonItem = button1;
8)rightBarButtonItems 设置导航栏右侧多个按钮 例如:
1 self.navigationItem.rightBarButtonItems = @[button2, button1];
9)edgesForExtendedLayout 设置view的坐标都是从导航栏左下点开始计算 防止导航栏遮挡内容区域
例如:
1 self.edgesForExtendedLayout = UIRectEdgeNone;
10)initWithTitle 使用文字作为导航栏按钮 例如:
1 UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:@selector(back)];
11)initWithImage 使用图片作为导航栏按钮 例如:
1 UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"st_logout"] style:UIBarButtonItemStylePlain target:self action:@selector(back)]; 2 self.navigationItem.leftBarButtonItem = barButtonItem;
12)setToolbarHidden 设置导航栏显示与隐藏 例如:
1 [self.navigationController setToolbarHidden:NO];
13)动画效果实现 代码:
1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 self.view.backgroundColor=[UIColor whiteColor]; 4 5 firstView=[[UIView alloc]init]; 6 firstView.frame=CGRectMake(0, 20, 50, 50); 7 firstView.backgroundColor=[UIColor blackColor]; 8 [self.view addSubview:firstView]; 9 for (int i=0; i<4; i++) { 10 UIButton *btn=[[UIButton alloc]init]; 11 btn.frame=CGRectMake(20,50, CGRectGetWidth(self.view.frame), 30); 12 } 13 [self moveFirstViewToRight]; 14 } 15 16 -(void)moveFirstViewToRight{ 17 //UIview 动画 18 [UIView animateWithDuration:3.f animations:^{ 19 firstView.frame=CGRectMake(self.view.frame.size.width-firstView.frame.size.width, 20, 50, 50); 20 }]; 21 }
转载于:https://www.cnblogs.com/ChinaKingKong/p/4696301.html
iOS阶段学习第31天笔记(UINavigationBar介绍)相关推荐
- IOS开发学习笔记-----UILabel 详解
IOS开发学习笔记-----UILabel 详解 01 //创建uilabel 02 UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMa ...
- ios开发学习笔记--Core Motion
iOS开发学习笔记之CoreMotion-运动传感器 官网文档:CoreMotion Framework Reference 一. 简介 现在的苹果手机都基本有运动传感器,能够过获取到设备的加 ...
- IOS之学习笔记十五(协议和委托的使用)
1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...
- IOS开发学习笔记(一)
概述: iOS是苹果开发的手持设备操作系统(iPhone,iPad,iPod touch,iPad mini). 基于UNIX,层次架构:核心操作系统层(Core OS)-> 核心服务层(Cor ...
- [源码、文档、分享] iOS/iPhone学习系列、代码教程(转)
iOS/iPhone学习系列.代码教程----~~~持续更新中~~~ http://www.devdiv.com/iOS_iPhone-iOS_iPhone%E5%AD%A6%E4%B9%A0%E7% ...
- 开源中国iOS客户端学习
开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客 http://blog.csdn.net/column/details/xfzl-kykhd.html ...
- iOS完整学习路线图
--http://blog.csdn.net/q199109106q/article/details/8596506 --http://edu.51cto.com/roadmap/view/id-7. ...
- iOS手势学习UIGestureRecognizer cocos2d 手势推荐
iOS手势学习UIGestureRecognizer & cocos2d 手势推荐 手势识别类型: UILongPressGestureRecognizer // 长按 UIPanGestu ...
- 训练大规模对比学习的一些小笔记
训练大规模对比学习的一些小笔记 FesianXu 20210815 at Baidu Search Team 前言 笔者在公司中会面对数以亿计的用户历史行为数据,用好这些数据是非常关键的.而最近流行的 ...
最新文章
- SLAM的开源以及在移动端AR的适用分析
- oracle 存储过程 输入,Oracle 存储过程加密方法
- 证券业震荡,数字化智能化变革、升级与突破或是新生力量(附案例)
- Apache Mahout 0.9、10.1、11. CardinalityException: Required cardinality 60 but got 29
- c 文件怎么进行读取和写入操作?
- python-3.6.2安装
- php变量教学,PHP变量详解
- MySQL入门(一) MacOS端配置与基本命令
- 笔记:网络管理与检测命令
- 学习笔记——SM2算法原理及实现
- OSPF邻接关系建立过程
- python win32api键盘_python基于win32api实现键盘输入
- 唐宇迪机器学习笔记5:K近邻算法实战
- mysql 导入dmp_navicat怎么导入dmp文件
- 如何设置使谷歌浏览器打开链接自动跳转到新标签页而不是覆盖当前页面?
- HTML5+CSS期末大作业:运动体育网站设计主题——体育铅球(5页)带注册 期末作业HTML代码
- Android缓存,删除网络依赖包缓存
- 如何给网站添加IE浏览器升级提示
- 《学会提问》读书笔记
- 学习笔记——C语言打印日志封装
热门文章
- node.js学习文档_学习NodeJs从每天一个小知识点开始
- grpc python stream_Python gRPC笔记
- 如果计算机原理程序设计,计算机组成原理程序设计.doc
- mysql去掉乱码_mysql消除乱码方法集
- 人脸对齐(十八)--Joint Face Alignment and 3D Face Reconstruction
- 汇编学习--7.17--键盘输入和磁盘读写
- python内容限制_Python --类,实例和访问限制
- Ajax封装2.0版
- linux jenkins自动部署,【linux】【jenkins】自动化部署一 安装jenkins
- Hbase roekey设计入门