Open hkz404 opened 10 years ago
知识点一(4分):UITabBarController 创建一个包含五个 tabItem 的分栏控制器,点击后分别显示不同背景颜色的视图控制器(图标可随意使用系统自带的)。
知识点二(6分):在第二个视图控制器中添加一个按钮,点击之后会在第二个 tabItem 中增加一个未读小圆点,数字随按钮点击次数递增。
知识点三(10分):UITabBarController 与 UINavigationController 结合 在 tab1 中使用 UINavigationController,点击按钮可以跳转到另外一个界面,并有一个返回的按钮,同时隐藏 TabBar。
知识点四(16分):自定义 TabBar 自定义 TabBar ,手动实现背景高亮、TabBar 隐藏、模拟 TabBar 点击切换子视图控制器。
UITabBarController 的基本概念
UINavigationController 和 UITabBarController(分栏控制器)一样是用来管理视图控制器的。前者管理视图控制器之间的导航,后者管理固定的几个视图控制器,子控制器是并列的,可以任意切换显示。
注意:UINavigationController 采用栈的方式来管理视图控制器,但 UITabBarController 在切换不同视图控制器的时候,是不会销毁视图的,除非内存告警,但是该视图的视图控制器依旧存在。
UITabBarController 的样式
示例代码
UITabBarController 的结构
与 UINavigationController 不同,UITabBarController 使用数组管理子视图控制器,并且子视图控制器之间是平等关系。
UITabBarController 类图分析
我们已经知道一个 UITabBarController 控制着若干个由数组管理的视图控制器,一般最多显示 5 个,如果超过 5 个,则会出现一个 More 的按钮。
一个 UITabBarController 只有一个 UITabBar 视图,用于显示 UITabItem 视图,正如一个 UINavigationController 只有一个 UINavigationBar 视图,用于显示 UINavigationItem 视图。
如果子视图控制器想要设置 UITabBar 的话,就需要通过 UITabBarItem 来设置,它是每个子视图控制器都拥有的。正如 UINavigationController 中子视图控制器想要管理 UINavigationBar 的话,需要通过 UINavigationBarItem 来设置。
注意:UITabItem 不能拥有自定义视图,也就是无法自定义样式。使用的图片都会被转换成单色图。
UITabBarController 代理方法
UITabBarController 与 UINavigationController 的结合
一般是 UINavigationController 作为一个子视图控制器放在 UITabBarController 下。
UITabBar 视图的组成
另外,通过 badgeValue 可以设置红色标记:
也可以给程序图标设置:
定制 UITabBar
隐藏 UITabBarController 的 UITabBar,然后创建一个 View 视图代替,在此 View 上添加 UIButton 代替 Tab 标签。
iOS 5.x 提供了新方法用于定义用户自己的 UITabBar:
隐藏 UITabBar