IOS学习之基于IOS7的tab bar
转载请注明出处
http://blog.csdn.net/pony_maggie/article/details/28129473
作者:小马
什么是tabbar? 先几张图:
上图中蓝色框起来的部分就是tabbar, 它有例如以下几个特征:
1 它通常位于屏幕的最下方,不是必定,但大部分情况是这样。
2 tab bar的每一个选项卡通常表示不同的功能。这也是它与segmentedcontrol最重要的差别, 后者强调的是同一功能不同类别的区分,前者则是不同功能的区分。
拿开头两个图作为样例,看看他们上面红色框起来的部分,叫segmentedcontrol。
3 由于2的原因,tab bar的不同选项卡通常相应不同的视图。
4 tab bar的每一个选项卡一般都有图标,有些是图标+文字(比方最上面两个图),一般不会仅仅有文字。
这个也是和segmentedcontrol的一个差别。
我今天写的这个demo,为了涉及面比較广一些,我会分别用一个系统的图标,两个自己定义的图标(一个带文字和图片,一个仅仅有文字), 来设置不同的tabbar item。终于效果例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcG9ueV9tYWdnaWU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcG9ueV9tYWdnaWU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
开发环境
mac os + xcode5.0 + ios7模拟器
tab bar上的图标大小大通常是30*30,tab bar的总体高度是49。
假设须要自己定义图标,请參考这个大小比例。
新建一个single View的project, 然后拖一个tabbar controller到storyboard。你会发现这个tabbar controller还同一时候带着两个viewController过来,并自己主动关连到item。 这个”擅自做主”的行为并不会引起我们的反感,由于我们差点儿总是须要这样做。
为了便于区分, 我们设置两个view的背景色,终于例如以下图所看到的(初始的那个viewcontroller已经被我删除):
然后我们再添加一个item。
拖一个viewcontroller过来。设置一下背景色。
然后按住conrol键。从tabbar controller拖到这个viewcontroller, 选择最以下的”relationship”,例如以下图所看到的:
然后终于的storyboard例如以下图所看到的:
好了,编译执行,一切OK。有没有注意到我一行代码都没有写,是不是非常奇妙呢!
代码下载地址:
https://github.com/pony-maggie/TabBarControlDemo
或
http://download.csdn.net/detail/pony_maggie/7439409
IOS学习之基于IOS7的tab bar的更多相关文章
- uitabbarcontroller中 在设置tab bar item的image属性后不显示问题
开始使用ios中的UITabBarController,在给Tab Bar Item设置自定义图片的时候,遇到了问题 按照如下配置: 出来的结果确是: 实际上test24.png应该是: 纠结了很久, ...
- iOS第八课——Navigation Controller和Tab bar Controller
今天我们要学习Navigation Controller和Tab bar Controller. Navigation Controller是iOS编程中比较常用的一种容器,用来管理多个视图控制器. ...
- iOS开发中的错误整理,Changing the delegate of a tab bar managed by a tab bar controller is not allowed
iOS [错误:'Changing the delegate of a tab bar managed by a tab bar controller is not allowed.'] 错误:'Ch ...
- iOS开发:使用Tab Bar切换视图
iOS开发:使用Tab Bar切换视图 上一篇文章提到了多视图程序中各个视图之间的切换,用的Tool Bar,说白了还是根据触发事件使用代码改变Root View Controller中的Conten ...
- 自定义tab bar控件 学习资料
http://blog.csdn.net/zoeice/article/details/8068671 import java.util.Vector; import android.content. ...
- 学习笔记:Tab Bar 控件使用详解
注意这里是:Tab Bar 不是Tab Bar Controller. Tab bar是继承UIView,所以可以添加到ViewController里.是View就可以add到另一个View上去.Ta ...
- 【转】iOS学习之translucent属性
原文地址:http://www.jianshu.com/p/930643270455 总所周知,苹果从iOS7开始采用扁平化的界面风格,颠覆了果粉们"迷恋"的拟物化风格.对于开发者 ...
- iOS学习路线图
一.iOS学习路线图 二.iOS学习路线图--视频篇 阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天 学习后目标: ...
- 从零开始学ios开发(十一):Tab Bars和Pickers
不好意思各位,本人休息了一个礼拜,所以这次的进度延后了,而且这次的学习的内容比较多,时间用的也比较长,文章发布的时间间隔有些长了,望各位谅解,下面继续我们的ios之旅. 这次我们主要学习的内容有2个, ...
随机推荐
- Java编程思想第四版第二章练习题答案
练习1:创建一个类,它包含一个int域和一个char域,它们都没有被初始化.将他们的值打印出来,以验证Java执行了默认初始化 public class JavaThinking { private ...
- PHP array_key_exists() 函数(判断某个数组中是否存在指定的 key)
定义和用法 array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false. 语法 array_key_exists(ke ...
- CodeIgniter2.0中sqlserver驱动返回受影响行数问题解决
最近使用CI写项目时遇到的问题,当使用sqlserve链接操作时 修改和删除返回的受影响行数不对 解决办法如下: 找到ci框架目录中include\database\drivers\sqlsrv\sq ...
- 【LOJ】#2432. 「POI2014」代理商 Couriers
题解 建出一个主席树,因为出现大于区间一半的数只能有一个,就看看左右区间的增加有没有大于一半,如果有就走向那个子树,如果没有那么返回0 代码 #include <iostream> #in ...
- URLconf+MTV:Django眼中的MVC
MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器).其中: M 管理应用程序的状态(通常存储 ...
- hadoop集群的搭建(分布式安装)
集群 计算机集群是一种计算机系统,他通过一组松散集成的计算机软件和硬件连接起来高度紧密地协同完成计算工作. 集群系统中的单个计算机通常称为节点,通常通过局域网连接. 集群技术的特点: 1.通过多台计算 ...
- ES6 一些笔记
一. let/const: 1. “暂时性死区”概念:在代码块内,使用let/const命令声明变量之前,该变量都是不可用的.这在语法上,称为“暂时性死区”(temporal dead zone,简称 ...
- java_String、StringBuilder
在介绍String和StringBuilder前先学习一下equals方法和toString方法.API java1.6提取码:04b6 equals方法 equals方法,用于比较两个对象是否相同, ...
- Openstack-开发基础 stevedore学习
在给openstack-N版加路由的时候发现怎么都无法搞定,原来现在用这个模块来处理了 stevedore是用来实现动态加载代码的开源模块.它是在OpenStack中用来加载插件的公共模块.可以独立于 ...
- python opencv3 窗口显示摄像头的帧
git:https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 """ 在窗口显示摄像 ...