导航状态栏(UINavigationBar)和分栏状态栏(UITabBar)

//*************导航状态栏(UINavigationController)***************

1.在导航控制器中,所有的子视图控制器共用一个导航状态栏

UINavigationBar *navBar = self.navigationController.navigationBar

2.可设置导航栏的显示风格

navBar.barStyle = UIBarStyleDefault;

3.可设置导航栏的不透明度,默认为YES(不透明)

//如果设置为透明,则子视图的左上角坐标原点为从(0,0)开始

//如果设置为不透明,则子视图的左上角坐标原点为从(0,20+44)开始

//导航栏高度:44,顶部状态栏高度:20

navBar.translucent = NO;   (透明)

4. 可设置导航栏的背景颜色

navBar.barTintColor = [UIColor redColor];

5.可设置导航栏的背景图片

//竖屏模式:UIBarMetricsDefault

//横屏模式:UIBarMetricsCompact

[navBar setBackgroudImage:[UIImage ImageNamed:@“XXX.jpg”] forBarMetrics:UIBarMetricsDefault];

//*************导航元素项(UINavigationItem)***************

1.导航元素项(navigationItem)属于子视图控制器,即每个子视图控制器都有自己的导航元素项

self.navigationItem.title = @“视图一”;       (设置导航栏标题方式一:通过文字)

UIView *view = [UIView alloc]initWithFrame:CGRectMake(0,0,30,30);

view.background = [UIColor redColor];

self.navigationItem.titleView = view;          (设置导航标题方式二:通过视图,优先级最高)

2.下一个视图控制器的返回按钮是由上一个视图控制器来创建的,返回按钮如果没有创建,系统会自动创建,并且将当前控制器的标题设为返回按钮的标题,这个返回按钮是给下一个视图控制器使用,如果返回按钮的问题太长,不能完全显示,则自动替换为Back

self.navigationItem.backBarButtonItem = [UIBarButtonItem alloc]initWithTitle:@“帮助1” style:UIBarButtonStylePlain target
:nil action:nil];

2.1设置当前导航元素项的左元素项

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@“帮助2" style:UIBarButtonItemStylePlain target:nil action:nil];

2.2创建导航元素项按钮(标题方式),并设置为当前视图的右元素项

UIBarButtonItem *rightItem = [[UIBarButtonItem alloc]initWithTitle:@"编辑" style:UIBarButtonItemStyleDone target:self action:@selector(rightClick)];

self.navitaionItem.rightBarButtionItem = rightItem;

2.3创建系统样式的按钮

UIBarButtonItem *rightItem2 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:nil];

self.navigationItem.rightBarButtonItem = rightItem2;

2.4创建自定义样式按钮

UIView *view2 = [[UIView alloc]init];

view2.frame = CGRectMake(0, 0, 30, 30);

view2.backgroundColor =[UIColor redColor];

UIBarButtonItem *rightItem3 = [[UIBarButtonItem alloc]initWithCustomView:view2];

self.navigationItem.rightBarButtonItem = rightItem3;

2.5创建图片样式按钮

UIImage *image = [UIImage imageNamed:@"user_total"];

//强制设置图像为原始的描画方式显示

UIImage *image1 = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIBarButtonItem *rightItem4 = [[UIBarButtonItem alloc]initWithImage:image1 style:UIBarButtonItemStyleDone target:nil action:nil];

self.navigationItem.rightBarButtonItem = rightItem4;

//设置左元素项数组,并且会覆盖掉原有元素项

self.navigationItem.leftBarButtonItems = @[rightItem2,rightItem3,rightItem4];

//设置右元素项数组,并且会覆盖原有元素项

self.navigationItem.rightBarButtonItems = @[rightItem2,rightItem3,rightItem4];

//*****************分栏状态栏(UITabBarController)****************

1.分栏控制器的分栏状态栏属于分栏控制器,但分栏按钮是属于子视图控制器

UITabBar *tabBar = tabBarCtrl.tabBar;     (获取分栏控制器的分栏)

2.可设置分栏的透明度

tabBar.translucent = NO;

3.可设置分栏的显示风格

tabBar.barStyle = UIBarStyleBlack;

4.可设置选中按钮的标题的颜色

tabBar.tintColor = [UIColor redColor];

5.可设置分栏的前景颜色

tabBar.barTintColor = [UIColor blueColor];

6.可设置分栏是否隐藏

tabBar.hidden = NO;

7.可设置分栏的背景图片

tabBar.backgroundImage = [UIImage ImageNamed:@“XXX.jpg”];

//********************分栏元素项(UITabBarItem)*********************

1.创建分栏元素项的方式1:系统自动创建

FirstViewController *firstVC = [[FirstViewController alloc]init];

firstVC.title = @"视图一";

//tabBarItem为系统自动创建 lazily方法

firstVC.tabBarItem.title = @"VC1";

SecondViewController *secondVC = [[SecondViewController alloc]init];

2.创建分栏元素项的方式2:创建系统类型的按钮

//参数1:系统风格类型

//参数2:按钮的tag值

UITabBarItem *item2 = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0];

secondVC.tabBarItem = item2;

secondVC.title = @"VC2";

ThirdViewController *thirdVC = [[ThirdViewController alloc]init];

3.创建分栏元素项的方式3:创建标题和图片样式的按钮

UITabBarItem *item3 = [[UITabBarItem alloc]initWithTitle:@"视图三" image:[UIImage imageNamed:@"tab_0"] tag:0];

thirdVC.tabBarItem = item3;

FouthViewController *fouthVC = [[FouthViewController alloc]init];

4.创建分栏元素项的方式4:

//按照图片原始方式绘制效果

UIImage *image = [UIImage imageNamed:@"tab_friend_select"];

UIImage *image1 = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UITabBarItem *item4 = [[UITabBarItem alloc]initWithTitle:@"视图四" image:[UIImage imageNamed:@"tab_friend_normal"] selectedImage:image1];

fouthVC.tabBarItem = item4;

时间: 2024-08-24 16:36:29

导航状态栏(UINavigationBar)和分栏状态栏(UITabBar)的相关文章

分栏控制器与导航控制器的联合使用-主流框架

现在的一些主流的框架基本上是按 分栏控制器和导航控制器配合使用的 导航控制器负责横向切换 分栏控制器是控制纵向的切换 我们应该研究 一些主流框架的实现原理 在此基础上提升的速度才会比较快 这里只是给大家抛砖,希望大家能够学习到一些知识 我们所说的栈控制器 -本质上就是一个数组 ,用于管理每个页面 直接上代码了: // // AppDelegate.h // 88888-tabbar #import <UIKit/UIKit.h> @interface AppDelegate : UIRespo

fiddler工具条、状态栏、请求信息栏各按钮的作用

1.fiddler工具条 2.fiddler状态栏 3.请求信息栏 原文地址:https://www.cnblogs.com/kakaln/p/8198299.html

Android状态栏微技巧,动态控制状态栏显示和隐藏

记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解. 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发起的.因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法.而有些人在没有完全了解清楚沉浸模式到底是什么东西的情况下,就张冠李戴地认为一些系统提供的状态栏操作就是沉浸式的,并且还起了一个沉浸式状态栏的名字. 比如之前就有一个QQ群友问过我

设置TabBar分栏控制器上图片的大小问题

我们都知道,iOS因为屏幕分辨率的问题,UID在交付我们iOS开发人员程序配图的时候,一般是三套图,分别对应三种不同的分辨率,对不同size的屏幕系统会自动使用不同像素的图片,我们只需要在命名时给三套图统一命名@1x.@2x和@3x就可以了. 那么为什么会有三套图呢? 这是根据iPhone不断更新而随之出现的.iPhone4之前的iPhone3G/iPhone3GS甚至于更早的iPhone一二代手机,屏幕特点是一个点位只有一个像素:而iPhone4开始到iPhone6/iPhone6s,使用的就

ListView分栏--制作分栏音乐列表

之前我遇到过这样的需求,要求在ListView中按时间对数据分栏,当时的做法是在每个ListView的item中加入时间栏的布局,然后在代码中控制时间栏 的显示与隐藏. 但其实重写Adapter两个方法后就可以完成这个任务,当ListView中带有不同布局的时候,可以根据itemType来加载不同的布局. int getItemViewType(int position) 返回指定position的itemView的viewType,用于加载不同布局.此方法必须返回0到getViewTypeCo

Sublime Text 3运行程序以及分栏快捷键的设置

Sublime Text 3软件由于每次运行程序都要执行:Tools -> SublimeREPL -> Python -> RUN current file 菜单有点麻烦,所以现在可以考虑给他创建个快捷键 依次点击:perferences ------ key bindings user,将下列代码粘贴 {"keys":["f2"],"caption": "SublimeREPL: Python - RUN curr

JavaScript(二)--实现分栏

Javascript中讲到了分栏的小实例,这篇文章就写一个小的例子吧,从这个例子中看看我们都学到什么? (一)源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtm

javascript有用小技巧—实现分栏显示

记得给师哥师姐測试考试系统的时候,看到他们的考试页面能够实现隐藏左边的考生信息部分,当时认为好高大上.好人性化. 如今学了javascript,我也能实现这个功能了,以下来显摆一下. 1.页面设计: (1).html代码: <title>js分栏</title> <style type="text/css"> .alignment{ text-align: center; } </style> </head> <scri

WORD里怎样能做到局部“分栏”就是一页里有的分有的不分

选中你要分的部分再分栏如果不想分的部分也被分了,那就可以选中不想分的那部分,选择“分栏”->“一栏” 转自:http://zhidao.baidu.com/question/9873268.html?qbl=relate_question_0&word=word%20%B7%D6%C0%B8%20%D6%D0%B6%CF&optimi=4