做一个项目前搭建一个tabBar(一)框架
前言
通常做一个项目前,不算开始讨论需求,分析产品等等,一开始会给我们搭建一个框架,今天简单说一下搭建框架.
github网址:https://github.com/Moonths/iWatch.git
效果图


正文
1.创建几个ViewController添加到TabBarController上,一般添加3-4个tabBar,最多不过5个,5个以上之后用户体验就不好了.
2.创建好之后依次引入头文件,在viewDidLoad上添加
//TalkViewController.h
TalkViewController *talkVC = [[TalkViewController alloc] init];
UINavigationController *talkNC = [[UINavigationController alloc] initWithRootViewController:talkVC];
talkNC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"消息" image:[UIImage imageNamed:@"iconfont-12.png"] selectedImage:[UIImage imageNamed:@"iconfont-12-1.png"] ];
//MessageViewController.h
MessageViewController *messageVC = [[MessageViewController alloc] init];
UINavigationController *messageNC = [[UINavigationController alloc] initWithRootViewController:messageVC];
messageNC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"活动" image:[UIImage imageNamed:@"iconfont-4.png"] selectedImage:[UIImage imageNamed:@"iconfont-4-1.png"] ];
//MeViewController.h
MeViewController *meVC = [[MeViewController alloc] init];
UINavigationController *meNC = [[UINavigationController alloc] initWithRootViewController:meVC];
meNC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"我" image:[UIImage imageNamed:@"iconfont-wo.png"] selectedImage:[UIImage imageNamed:@"iconfont-wo-1.png"]]];
self.viewControllers = @[talkNC,messageNC,meNC];
3.改变属性
上面的代码点击tabBar的时候并不是你放上的图片颜色,要加一个属性
talkNC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"消息" image:[UIImage imageNamed:@"iconfont-12.png"] selectedImage:[[UIImage imageNamed:@"iconfont-12-1.png"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]];
messageNC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"活动" image:[[UIImage imageNamed:@"iconfont-4.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"iconfont-4-1.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
meNC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"我" image:[[UIImage imageNamed:@"iconfont-wo.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"iconfont-wo-1.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
4.改变下面tabBar的背景颜色
//改变tabBar的背景颜色
UIView *backView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 49)];
backView.backgroundColor = [UIColor grayColor];
[self.tabBar insertSubview:backView atIndex:0];
//opaque默认是YES 不透明的意思
self.tabBar.opaque = YES;
5.改变tabBar上的字体颜色
//设置字体的颜色
self.tabBar.tintColor = [UIColor whiteColor];
miaomiaoccat小语
这个代码比较简单,我就没有传到github上,上面基本是全部代码,应该可以完成,有不对的地方欢迎指教.请留言.
做一个项目前搭建一个tabBar(一)框架的更多相关文章
- 用一个下午从零开始搭建一个基础lbs查询服务
背景 现在做一个sns如果没有附近的功能,那就是残缺的.网上也有很多现成的lbs服务,封装的很完整了. 我首先用了下百度lbs云,但是有点不适合自己的需要,因此考虑用mongodb建一个简单的lbs服 ...
- 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的 ...
- 搭建一个wordpress网站需要做哪些工作
今天做了自己的个人网站:二飞日志 之前因为服务器的问题,因为备案的原因辛辛苦苦做的站点数据没了.还好的是没有多少数据.没关系,重新来.有了上一次的经验,这次搭建起来比较顺手.但是也出现了几个问题.下面 ...
- 教程:动手用自己电脑搭建一个网站 (nat123 花生壳 动态域名 个人电脑做服务器)
先ps一下..今晚试了N种方法,终于找到一个靠谱 免费 好用的方法,来改装自己电脑成为服务器,在外网也能通过域名访问了!!! 需要准备的东西: Tomcat:这个是web容器,其实有了这个就已经让电脑 ...
- 从零开始搭建一个PaaS平台 - 我们要做什么
前言 从最开始的小公司做小网站,到现在进入现在的公司做项目,发现小公司里很多很多工作都是重复的劳动(增删改查),不过想想也是,业务软件最基础的东西不就是增删改查吗. 但是很多时候,这种业务逻辑其实没有 ...
- 通过rsync搭建一个远程备份系统(一)
前言 我公司是电子商务公司,全部是linux系统,每天的网站数都在增加,为了保证安全,需要建立一个远程容灾系统,将网站数据每天凌晨1点备份到远程服务器上,由于数据量大,每天进行进行增量备份,仅仅备份当 ...
- 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
喜欢写Blog的人,会经历三个阶段. 第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写. 第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客. 第三阶段,觉得独立博客的管 ...
- [原创] zabbix学习之旅五:如何快速搭建一个报警系统
通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序 ...
- Anroid搭建一个局域网Web服务器
前言 很多开发者看到这个标题表示很怪异,Android怎么可能搭建服务器呢?根本用不到呀,这个项目毫无价值.我表示很理解这一类的开发者,毕竟每个人的经验经历都是有限的. 必须要说说我们的用处(需要 ...
随机推荐
- linux命令学习-4-lsof
lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. 在终端下输入ls ...
- spring DateUtils
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...
- 【转】一大波实用的 bash 别名和函数
作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令.如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在这种不断的重复中为你 ...
- 2)Javascript设计模式:Singleton模式
Singleton模式 var User = (function() { var instance; function _User(){} _User.prototype.say = function ...
- C#常用网址
C# 编程指南 https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx
- UOJ #192 【UR #14】 最强跳蚤
题目链接:最强跳蚤 这道题本来不想写博客的--但是鉴于自己犯了低级错误,还是写篇博客记载一下. 一开始我的想法和题解里面的算法而比较类似,也是先分解质因数,然后用质因子是否出现偶数次来判断当前这个数是 ...
- Hao Yin Jian 寒假第一周
题目链接:https://vjudge.net/contest/147561#problem/A 题意:除法运算,abcde / fghij = n,从小到大输出,其中abcdefghij为0~9的不 ...
- iOS 更改启动视图
TMMainViewCtrl *main = [[TMMainViewCtrl alloc] init]; self.window.rootViewController = main;
- iOS 类库列表
1. LinqToObjectiveC #import "NSArray+LinqExtensions.h" 它为NSArray添加了许多方法,能让你用流式API来转换.排序.分 ...
- Grunt之watch详解
Grunt 之 watch 和 livereload 现在 watch 中已经集成了 livereload ,所以把它们放在一起说明. watch 可以监控特定的文件,在添加文件.修改文件.或者删除文 ...