iOS阶段学习第31天笔记(UINavigationBar介绍)
iOS学习(UI)知识点整理
一、UINavigationBar 的介绍
1)概念:UINavigationBar 是用于定义导航栏按钮的一个类对象
2)在使用UINavigationBar之前必须先初始化导航栏 实例代码:
//初始化导航栏
FirstViewController *firstVC = [[FirstViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:firstVC];
self.window.rootViewController = nav; //appearance一定要在初始化之前使用
//修改默认的UINavigationBar的导航条背景颜色,
[[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]]; //修改默认的导航栏文字即图标颜色
[[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; //设置导航栏背景图片
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"icon"] forBarMetrics:UIBarMetricsDefault];
3)setNavigationBarHidden 设置隐藏导航栏 例如:
[self.navigationController setNavigationBarHidden:YES];
4)title 设置导航栏标题 例如:
self.title = @“First View”;
//注意:在一处做此设置后,后面的视图控制器如未作设置也会使用此标题
5)titleView 用于设置导航栏中间的视图 例如:
UIView *navBarView = [[UIView alloc] init];
navBarView.frame = CGRectMake(, , , );
navBarView.backgroundColor = [UIColor clearColor];
navBarView.layer.cornerRadius = 8.0f;
navBarView.clipsToBounds = YES; UIButton *btn1 = [[UIButton alloc] init];
btn1.frame = CGRectMake(, , , );
btn1.backgroundColor = [UIColor blueColor];
[btn1 setTitle:@"消息" forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(btn1Tapped:) forControlEvents:UIControlEventTouchUpInside];
btn1.tag = ;
[navBarView addSubview:btn1]; UIButton *btn2 = [[UIButton alloc] init];
btn2.frame = CGRectMake(, , , );
btn2.backgroundColor = [UIColor blueColor];
[btn2 setTitle:@"电话" forState:UIControlStateNormal];
[btn2 addTarget:self action:@selector(btn1Tapped:) forControlEvents:UIControlEventTouchUpInside];
btn2.tag = ;
[navBarView addSubview:btn2]; //在导航栏中的中间位置加入我们自定义的view,
//程序会把我们设置的view自动居中
self.navigationItem.titleView = navBarView;
6)UIBarButtonItem 导航栏上的按钮元素 常用的系统自带的Bar有
/*
* UIBarButtonSystemItemDone 按钮样式为文字Done、
* UIBarButtonSystemItemAdd 按钮样式为图片的加号
*UIBarButtonSystemItemCamera 按钮样式是图片的照相机
*UIBarButtonSystemItemFixedSpace 是一个占位符 ,可以设置width
*UIBarButtonSystemItemFlexibleSpace 是一个占位符,固定宽度,导航栏上单独一个按钮
*/
例如:
//系统自带照相机按钮
UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera
target:self action:@selector(barButtonTapped:)]; //占位符按钮
UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:self action:@selector(barButtonTapped:)];
7)rightBarButtonItem 设置导航栏右侧单个按钮 例如:
self.navigationItem.rightBarButtonItem = button1;
8)rightBarButtonItems 设置导航栏右侧多个按钮 例如:
self.navigationItem.rightBarButtonItems = @[button2, button1];
9)edgesForExtendedLayout 设置view的坐标都是从导航栏左下点开始计算 防止导航栏遮挡内容区域
例如:
self.edgesForExtendedLayout = UIRectEdgeNone;
10)initWithTitle 使用文字作为导航栏按钮 例如:
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain
target:self action:@selector(back)];
11)initWithImage 使用图片作为导航栏按钮 例如:
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"st_logout"]
style:UIBarButtonItemStylePlain target:self action:@selector(back)];
self.navigationItem.leftBarButtonItem = barButtonItem;
12)setToolbarHidden 设置导航栏显示与隐藏 例如:
[self.navigationController setToolbarHidden:NO];
13)动画效果实现 代码:
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor=[UIColor whiteColor];
firstView=[[UIView alloc]init];
firstView.frame=CGRectMake(, , , );
firstView.backgroundColor=[UIColor blackColor];
[self.view addSubview:firstView];
for (int i=; i<; i++) {
UIButton *btn=[[UIButton alloc]init];
btn.frame=CGRectMake(,, CGRectGetWidth(self.view.frame), );
}
[self moveFirstViewToRight];
}
-(void)moveFirstViewToRight{
//UIview 动画
[UIView animateWithDuration:.f animations:^{
firstView.frame=CGRectMake(self.view.frame.size.width-firstView.frame.size.width, , , );
}];
}
iOS阶段学习第31天笔记(UINavigationBar介绍)的更多相关文章
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- iOS 阶段学习第七天笔记(函数、递归)
iOS学习(C语言)知识点整理笔记 一.函数 1)概念:具有特定功能的代码块的封装 2)函数的定义: 函数类型+函数名(形参列表) 函数类型 函数名(形参类型1 形参名1,形参类型2 形参名2 ...
- iOS阶段学习第四天笔记(循环)
iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ } 两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...
- iOS阶段学习第三天笔记(运算符)
iOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运 ...
- iOS 阶段学习第四天笔记(循环)
iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ } 两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...
- iOS 阶段学习第三天笔记(运算符)
iOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运 ...
- iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)
iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器 实例代码 - (void)viewDidLoad { [super viewDidLoad]; / ...
- iOS阶段学习第33天笔记(自定义标签栏(UITabBar)介绍)
iOS学习(UI)知识点整理 一.自定义标签栏 1.方法一 单个创建标签栏 #import "AppDelegate.h" #import "SecondViewCont ...
- iOS阶段学习第32天笔记(页面传值方法介绍)
iOS学习(UI)知识点整理 一.界面传值方法 1.方法一 Block传值 通过SubView视图的Block向View视图传值改变View视图的背景色 实例代码: 1)SubViewContro ...
随机推荐
- [ACM_几何] F. 3D Triangles (三维三角行相交)
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28235#problem/A 题目大意:给出三维空间两个三角形三个顶点,判断二者是否有公共 ...
- 使用EntityFramework的烦恼
我有一个应用程序,是实现数据ETL同步的,即把数据从一个db里抽取出来,经过处理后,存储到另一个db里. O/RM采用的是EF db First. 随着项目程序的开发,EF的不足越来越明显. ● 根据 ...
- GUID相关知识
全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络或系统中.在理想 ...
- Atitit rgb yuv hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
Atitit rgb yuv hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别 1.1. 色彩的三要素 -- 色相.明度.纯度1 1.2. YUV三个字母中,其中"Y&quo ...
- rabbitMQ第四篇:远程调用
前言:前面我们讲解的都是本地服务器,现在如果需要远程计算机上运行一个函数,等待结果.这就是一个不同的故事了,这种模式通常被称为远程过程调用或者RPC. 本章教程我们使用RabbitMQ搭建一个RPC系 ...
- 详解JavaScript模块化开发
什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等 ...
- dropdownlist同时绑定数据库和自定义内容
在有些时候,我们需要dropdownlist里面包含“全部”这个字段,但是数据库中不存在“全部”,只存在具体的分类项. 这种情况下就需要先把数据库的数据源绑定到dropdownlist中,然后再在后面 ...
- 【Discuz】-QQ互联登陆提示错误信息:Unknown column 'conuintoken' in 'field list'
提示信息 discuz! Database Error(1054) Unknown column 'conuintoken' in 'field list'REPLACE INTO common_co ...
- java二维数组的常见初始化
public class Test{ public static void main(String[] args){ //第一种: //int[][] arr1 = new int[][]{{1,2} ...
- Cocos2d-x 3.2 学习笔记(六)Layer
Layer 游戏中的背景容器,Layer类是Node类的一个子类,它实现了触屏事件代理(TouchEventsDelegate)协议. LayerColor是Layer的一个子类,它实现了RGBAPr ...