UITabBarController 虽然很强大,基本上也能满足常见的需求,但是用起来总没那么畅快。有时候,总有一些变态的需求,需要自定义。
之前也看过一些别人自定义的TabBarController,但是都不尽理想,准确的说,很多自定义的都是继承自UITabBarController的即是半自定义的。根本谈不上真正意义上的自定义。
今天就分析一个我认为比较好的自定义TabBarController.
一,先来看一下TabBarController的基本结构
一般说来TabBarController,下面有一个TabBar, TabBar是一个视图,继承自UIView.
TabBar这个视图里面又有多个选项TabBarItem,这些个Item,是一个可以点击,并且可以切换到对应的控制器页面的按键,同时,这些按键还有自己本身的属性设置。所以Item应该继承自UIControl. 所以结构就很清楚了:分3个部分。
- TabBarController (继承自UIViewController)
- TabBar (继承自UIView)
- TabBarItem (继承自UIControl)
二,分别来封装和分析各个部分
1. 先来看TabBarItem
tabBarItem,直观的显示,就是我们看到那几个点击来回切换的按键。当点击每一个选项的时候,选项就会有相应的变化,同时切换到对应的控制器界面。
有哪些属性和变化呢?
a. 本身基本属性:有选中/未选中图片、选中/未选中文字及颜色、选中/未选中背景色、有宽高大小位置偏移(供微调用);
b. 徽标显示:徽标值及其颜色大小、徽标图片、背景色
#import <UIKit/UIKit.h>
@interface RDVTabBarItem : UIControl
/**
* itemHeight is an opt