转载请注明出处

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的更多相关文章

  1. uitabbarcontroller中 在设置tab bar item的image属性后不显示问题

    开始使用ios中的UITabBarController,在给Tab Bar Item设置自定义图片的时候,遇到了问题 按照如下配置: 出来的结果确是: 实际上test24.png应该是: 纠结了很久, ...

  2. iOS第八课——Navigation Controller和Tab bar Controller

    今天我们要学习Navigation Controller和Tab bar Controller. Navigation Controller是iOS编程中比较常用的一种容器,用来管理多个视图控制器. ...

  3. 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 ...

  4. iOS开发:使用Tab Bar切换视图

    iOS开发:使用Tab Bar切换视图 上一篇文章提到了多视图程序中各个视图之间的切换,用的Tool Bar,说白了还是根据触发事件使用代码改变Root View Controller中的Conten ...

  5. 自定义tab bar控件 学习资料

    http://blog.csdn.net/zoeice/article/details/8068671 import java.util.Vector; import android.content. ...

  6. 学习笔记:Tab Bar 控件使用详解

    注意这里是:Tab Bar 不是Tab Bar Controller. Tab bar是继承UIView,所以可以添加到ViewController里.是View就可以add到另一个View上去.Ta ...

  7. 【转】iOS学习之translucent属性

    原文地址:http://www.jianshu.com/p/930643270455 总所周知,苹果从iOS7开始采用扁平化的界面风格,颠覆了果粉们"迷恋"的拟物化风格.对于开发者 ...

  8. iOS学习路线图

    一.iOS学习路线图   二.iOS学习路线图--视频篇       阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天       学习后目标:    ...

  9. 从零开始学ios开发(十一):Tab Bars和Pickers

    不好意思各位,本人休息了一个礼拜,所以这次的进度延后了,而且这次的学习的内容比较多,时间用的也比较长,文章发布的时间间隔有些长了,望各位谅解,下面继续我们的ios之旅. 这次我们主要学习的内容有2个, ...

随机推荐

  1. qt 问题及处理

    1. 包依赖问题 在windows平台时,通过microsoft process Explorer可以查看所以来的dll.并将这些dll复制到应用程序目录,加上qt.conf就可以使用了. [Path ...

  2. MAC下安装MAMP后,mysql server无法启动

    用MAC下载安装了MAMP,之前使用是很好没问题的,但是突然无法启动mysql server,检查日志,提示InnDB出错,然后删掉了/Application/MAMP/db/mysql56目录下的i ...

  3. SqlServr性能优化性能之层次结构(十五)

    1.添加根节点: hierarchyid  GetRoot()方法 --创建数据库 create table Employeeh(EmployeeID int,Name varchar(500),Ma ...

  4. 对于ElasticSearch与Hadoop是如何互相调用的?

    1.在HDFS中,数据是以文件形式保存的,比如JSON: https://blog.csdn.net/napoay/article/details/68945483 2.python读写HDFS,一般 ...

  5. python中发送邮件各种问题

    其实问题主要集中的QQ企业邮箱中,特别坑爹...代码如下: from email.mime.multipart import MIMEMultipart from email.mime.base im ...

  6. 在android studio中集成javah, ndk-build进行JNI开发

    最近在搞一个android上控制LED灯闪烁的功能,用到了串口编程,搜索了一下,发现Google发布了一个demo,android-serialport-api.有现成的代码和APK,要想自己改JNI ...

  7. Java_常用API

    1.基本类型包装类 1.1 概述 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型 ...

  8. zoj-1610线段树刷题

    title: zoj-1610线段树刷题 date: 2018-10-16 16:49:47 tags: acm 刷题 categories: ACM-线段树 概述 这道题是一道简单的线段树区间染色问 ...

  9. web项目使用配置web.xml实现重定向

    1.实现方式 使用servlet和servlet-mapping实现重定向 <!-- vip登录页面做特殊处理 --> <servlet> <servlet-name&g ...

  10. 如何定义最佳 Cache-Control 策略

    定义最佳 Cache-Control 策略 按照以上决策树为您的应用使用的特定资源或一组资源确定最佳缓存策略.在理想的情况下,您的目标应该是在客户端上缓存尽可能多的响应,缓存尽可能长的时间,并且为每个 ...