一:特征:
1、本质也是视图管理器,用于管理没有层级关系的UIView或者其子类。
2、由两部分组成:一是用于显示视图的UIViewController,另外一个是UITabBar用于控制管理的子视图之间的切换。
二:创建:
UITabBarController *控制器名字 = [UITabBarController new];
其中每个子视图或者自控制器的UITabBar由TabBarController其上UIViewController的TabBarItem属性设置。
UITabBarItem类实例化有三种方法:
第一种:用系统提供的UITabBar来初始化对象
- (instancetype)initWithTabBarSystemItem:(UITabBarSystemItem)systemItem tag:(NSInteger)tag;
第二种:自己来指定UITarBar中显示的文字以及不同状态时候显示的图片。
这个方法中的三个参数分别是:
title:TabBarButton下显示的文字
Image:TabBarButton默认状态下显示的图片
selectedImage:选中当前TabBar状态下,TabBarButton显示的图片
- (instancetype)initWithTitle:(nullableNSString*)title image:(nullableUIImage*)image selectedImage:(nullableUIImage*)selectedImageNS_AVAILABLE_IOS(7_0);
使用自定义的TabBar的时候如果不想系统默认的图片渲染样式,可以使用指定的枚举值修改图片的渲染模式,方法如下:
*UIImage对象 = [image对象 imageWIthRenderingMode:枚举值];
其中枚举值中:UIImageRenderingModeAlwaysOriginal //是关闭渲染效果。
第三种:
- (instancetype)initWithTitle:(nullableNSString*)title image:(nullableUIImage*)image tag:(NSInteger)tag;
我们还可以通过TabBarItem属性中的badgeValue属性在TabBarButton上显示NSString.
#pragma mark ========TabBarController常用属性==========
===============首先是UITabBarButton的属性========
//给UITabBarButton着色
@property(null_resettable,nonatomic,strong)UIColor*tintColorNS_AVAILABLE_IOS(5_0);
//设置UITaBar的阴影图片
@property(nullable,nonatomic,strong)UIImage*shadowImageNS_AVAILABLE_IOS(6_0)
//设置UITabBar的放置位置
@property(nonatomic)UITabBarItemPositioningitemPositioningNS_AVAILABLE_IOS(7_0)UI_APPEARANCE_SELECTOR__TVOS_PROHIBITED;
//设置UITabBar的样式
@property(nonatomic)UIBarStylebarStyleNS_AVAILABLE_IOS(7_0)UI_APPEARANCE_SELECTOR__TVOS_PROHIBITED;
=================其次是UITabBar的属性============
//给整个UITabBar着色
@property(nullable,nonatomic,strong)UIColor*barTintColorNS_AVAILABLE_IOS(7_0)UI_APPEARANCE_SELECTOR;// default is nil
#pragma mark ========UITabBarController的代理方法==========
//当UITabBarController的某个控制器被选中时候出发的方法。
- (void)tabBarController:(UITabBarController*)tabBarController didSelectViewController:(UIViewController*)viewController;
- (void)tabBarController:(UITabBarController*)tabBarController willBeginCustomizingViewControllers:(NSArray<__kindofUIViewController*> *)viewControllersNS_AVAILABLE_IOS(3_0)__TVOS_PROHIBITED;
- (void)tabBarController:(UITabBarController*)tabBarController willEndCustomizingViewControllers:(NSArray<__kindofUIViewController*> *)viewControllers changed:(BOOL)changedNS_AVAILABLE_IOS(3_0)__TVOS_PROHIBITED;
- (void)tabBarController:(UITabBarController*)tabBarController didEndCustomizingViewControllers:(NSArray<__kindofUIViewController*> *)viewControllers changed:(BOOL)changed__TVOS_PROHIBITED;