一:特征:
1、本質(zhì)也是視圖管理器,用于管理沒(méi)有層級(jí)關(guān)系的UIView或者其子類。
2、由兩部分組成:一是用于顯示視圖的UIViewController,另外一個(gè)是UITabBar用于控制管理的子視圖之間的切換兢交。
二:創(chuàng)建:
UITabBarController *控制器名字 = [UITabBarController new];
其中每個(gè)子視圖或者自控制器的UITabBar由TabBarController其上UIViewController的TabBarItem屬性設(shè)置。
UITabBarItem類實(shí)例化有三種方法:
第一種:用系統(tǒng)提供的UITabBar來(lái)初始化對(duì)象
- (instancetype)initWithTabBarSystemItem:(UITabBarSystemItem)systemItem tag:(NSInteger)tag;
第二種:自己來(lái)指定UITarBar中顯示的文字以及不同狀態(tài)時(shí)候顯示的圖片笼痹。
這個(gè)方法中的三個(gè)參數(shù)分別是:
title:TabBarButton下顯示的文字
Image:TabBarButton默認(rèn)狀態(tài)下顯示的圖片
selectedImage:選中當(dāng)前TabBar狀態(tài)下配喳,TabBarButton顯示的圖片
- (instancetype)initWithTitle:(nullableNSString*)title image:(nullableUIImage*)image selectedImage:(nullableUIImage*)selectedImageNS_AVAILABLE_IOS(7_0);
使用自定義的TabBar的時(shí)候如果不想系統(tǒng)默認(rèn)的圖片渲染樣式,可以使用指定的枚舉值修改圖片的渲染模式与倡,方法如下:
*UIImage對(duì)象 = ?[image對(duì)象 ?imageWIthRenderingMode:枚舉值];
其中枚舉值中:UIImageRenderingModeAlwaysOriginal //是關(guān)閉渲染效果界逛。
第三種:
- (instancetype)initWithTitle:(nullableNSString*)title image:(nullableUIImage*)image tag:(NSInteger)tag;
我們還可以通過(guò)TabBarItem屬性中的badgeValue屬性在TabBarButton上顯示NSString.
#pragma mark ========TabBarController常用屬性==========
===============首先是UITabBarButton的屬性========
//給UITabBarButton著色
@property(null_resettable,nonatomic,strong)UIColor*tintColorNS_AVAILABLE_IOS(5_0);
//設(shè)置UITaBar的陰影圖片
@property(nullable,nonatomic,strong)UIImage*shadowImageNS_AVAILABLE_IOS(6_0)
//設(shè)置UITabBar的放置位置
@property(nonatomic)UITabBarItemPositioningitemPositioningNS_AVAILABLE_IOS(7_0)UI_APPEARANCE_SELECTOR__TVOS_PROHIBITED;
//設(shè)置UITabBar的樣式
@property(nonatomic)UIBarStylebarStyleNS_AVAILABLE_IOS(7_0)UI_APPEARANCE_SELECTOR__TVOS_PROHIBITED;
=================其次是UITabBar的屬性============
//給整個(gè)UITabBar著色
@property(nullable,nonatomic,strong)UIColor*barTintColorNS_AVAILABLE_IOS(7_0)UI_APPEARANCE_SELECTOR;// default is nil
#pragma mark ========UITabBarController的代理方法==========
//當(dāng)UITabBarController的某個(gè)控制器被選中時(shí)候出發(fā)的方法。
- (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;