页签视图控制器-UITabBarController   自定义UITabBar     block高级

一.UITabBarController

结构为三层:Tab bar controller view             Custom content            Tab bar

UITabBarController的属性

viewControllers  显示视图控制器      tabBar    标签栏        delegate   代理

通过协议来监听当前选择的是哪个视图控制器

二. 自定义UITabBar

tabBar是UITabBar对象,包含多个UITabBarItem,每一个tabBarItem对应一个viewController,tabBar高度49

当tabBarItem超过5个时,系统会自动增加一个更多按钮,点击更多按钮,没有在底部出现的哪些按钮会以列表形式显示出来

第五个按钮会成系统的样式,如果想要实现自定义第五个以后的按钮显示的图标样式,要只写五个UITabBarItem,第五个实现自定义,包含多个其他的Item

三.控制器嵌套使用

可以把UINavigationController 作为UITabBarController的一个子控制器

也可以把UITabBarController作为UINavigationController的根控制器

四.block实现回调

block最大的优势就是实现回调,替代delegate部分功能

block回调的机制与delegate传值很类似

demo:bolock实现不定时登录

总结1:UITabBarController是项目开发中常见的布局样式,与UINavigationController不同,它的viewControllers都是并列的.而UINavigationController的则是层次的

UITabBar通常都会定义外观以适应程序风格,必要时会完全自定义

总结2:UITabBarController UINavigationController  UITableViewController通常都是组合出现,这种布局方式特别常见,一定要熟练应用

UITabBarController可以嵌套UINavigationController

UINavigationController也可以嵌套UITabBarController

实例代码:

UILessonTabBarController.zip

UI学习笔记---第十二天UITabBarController的更多相关文章

  1. Semantic ui 学习笔记 持续更新

    这个semantic 更新版本好快~ 首先是代码的标识<code></code> 具体样式就是红框这样的 圈起来代码感觉不错 不过要在semantic.css里在加上如下样式~ ...

  2. UI学习笔记---第十天UITableView表视图编辑

    UITableView表视图编辑 表视图编辑的使用场景 当我们需要手动添加或者删除某条数据到tableView中的时候,就可以使用tableView编辑.比如微信 扣扣中删除和某人的通话 当我们需要手 ...

  3. UI学习笔记---第二天

    程序的执行流程 一.自定义视图 自定义UILebal-UITextField视图 ⾃定义视图:系统标准UI之外,⾃己组合而出的新的视图. 实际开发中,我们还需⾃定义视图.积累⾃己的代码库.⽅便开发. ...

  4. UI学习笔记---第一天

    一.iOS概述 iOS是Apple公司的移动操作系统,主要⽤用于iPhone.iPad.iPad Mini.iPod Touch等移动产品. 借助iOS,我们可以开发视频类.美图类.新闻类.⾳乐类.团 ...

  5. IOS 学习笔记(3) 视图UITabbarController

    1.UITabbarViewController标签试图控制器.由于标签页本就起着分类的作用,所以往往呈现的视图内容之间,可以是毫不相关的功能. UITabbarViewController仍然继承自 ...

  6. 基于AngularJS的Onsen UI --Onsen UI学习笔记

    AngularJS与Onsen UI的结合,Onsen UI应用程序实际上是一个AngularJS 1应用程序. <!doctype html><html lang="en ...

  7. .Net Core,VUE,VS Code,Sql Sugar,Element UI学习笔记

    1..Net Core的目的是跨平台,并主要目标是作为服务端开发使用.从3.0开始,引入了Winfrom和WPF. 2..Net Core可以引用.Net Framework生成的dll和exe,不限 ...

  8. Amaze UI学习笔记——JS学习历程一

    1.自定义事件 (1)一些组件提供了自定义事件,命名方式为{事件名称}.{组件名称}.amui,用户可以查看组件文档了解.使用这些事件,如: $('#myAlert').on('close.alert ...

  9. jquery ui学习笔记

随机推荐

  1. NSSet基础-初始化、获取元素、集合运算等

    代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepo ...

  2. 二模 (10) day2

    第一题: 题目大意:求出区间 [L,R]里约数最多的数.   L,R<=10^9 解题过程: 1.一开始我就往恶心的数据去想了,比如 L=R=一个超级大的质数.. 那么 用搜索质因子的方法  是 ...

  3. 常见的Web负载均衡方法

    用户手动选择 通过在主站首页入口提供不同线路,不同服务器链接的方式,来实现负载均衡.在一些提供下载业务的网站中比较常见,如:华军软件园. DNS轮询 大多域名注册商都支持对同一主机名添加多条A记录,这 ...

  4. Matlab:max函数

    Matlab中max函数在矩阵中求函数大小的实例如下: C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的每一 ...

  5. IntelliJ IDEA 12.0

    User name:JavaDeveloper Serial number:92547-KY2BB-QZ0S1-PEZCV-HUT8Q-6RYY4

  6. hql语句理解2

    /* * this.getSession().createQuery("sdfdf").executeUpdate();这里面的query可以是delete,update,inse ...

  7. sql学习资料

    http://blog.sina.com.cn/s/articlelist_1594135432_9_1.html

  8. struts2+hibernate整合开发步骤

    百度的各种代码,步骤,自己整合了一下 1,创建数据库 常用mysql   creat table..... 2,在WebContent下的bin中添加相应的包 http://pan.baidu.com ...

  9. 获得servletContext的路径的方法

    request.getSession().getServletContext().getRealPath("")或 System.getProperty("webapp. ...

  10. android中KSOAP2中的anytype{}问题

    如果web返回为空,即空字符串的时候,KSOAP2会返回一个anytype{}这样的一个串回来,要比对下是不是这个串,如果是就返回null,从而避免查不到数据时没有相应处理. if (jsonStr. ...