UITabBarController一般做爲整個程序的rootViewController,並且不能添加到別的 container viewController中。ui
使用步驟:spa
(1)初始化UITabBarController代理
(2)設置UIWindow的rootViewController爲UITabBarControllercode
(3)建立相應的子控制器(viewcontroller)orm
(4)把子控制器添加到UITabBarController圖片
selectedIndex屬性可用於設置當前被選中的爲哪一個viewcontrollerci
可經過代理使tabbarcontroller的某一個viewcontroller不可用,即不可點擊,示例代碼:unicode
- (BOOL)tabBarController:(UITabBarController*)tabBarController shouldSelectViewController:(UIViewController*)viewController {圖片處理
if([tabBarController.viewControllersindexOfObject:viewController] ==1) {it
returnNO;
}
returnYES;
}
UITabBar上面顯示的每個Tab都對應着一個ViewController,咱們能夠經過設置 viewcontroller.tabBarItem屬性來改變tabbar上對應的tab顯示內容。不然系統將會根據viewController的 title自動建立一個,該tabBarItem只顯示文字,沒有圖像。當咱們本身建立UITabBarItem的時候,咱們能夠顯示的指定顯示的圖像和 對應的文字描述。固然還能夠經過
設置背景顏色
[tabVC.tabBar setBarTintColor:[UIColor grayColor]];
設置選中item顏色:
[tabVC.tabBarsetTintColor:[UIColorcolorWithRed:170/255.0green:0/255.0blue:0/255.0alpha:1.0]];
注意(未驗證):
UITabBar本身有一些方法是能夠改變自身狀態,可是對於UITabBarController自帶的tabBar,咱們不能直接去修改其狀態。任何直接修改tabBar的操做將會拋出異常
uitabbaritem的titlePositionAdjustment屬性可設置title的偏移量,示例代碼:
[newsVC.tabBarItemsetTitlePositionAdjustment:UIOffsetMake(0, -3)];
UIBarItem的imageInsets屬性可設置image的偏移量,示例代碼:
[newsVC.tabBarItemsetImageInsets:UIEdgeInsetsMake(20,0,0,0)];
UITabBar的默認高度爲49
UITabBarController的tabBar.frame屬性可任意修改tabbar的寬度和位置,但高度修改不生效。並且此時tabbarcontroller控制下的view controller的view也是按照tabor的默認尺寸和位置進行適配,若是要修改tabor的frame還須要手動對其控制下的view controller進行適配。
tabbaritem可分別設置image和selectedImage屬性,用來顯示選中和未選中時顯示的圖片
UIBarItem的圖片處理方案:
1.(默認)使用系統的圖片渲染處理,即時圖片自己有顏色也將對最終顯示結果無任何影響,此時可改變渲染的顏色
2.使用圖片自己的顏色,此時需修改UIImage的renderingMode(只讀)屬性。示例代碼:
newsVC.tabBarItem.image = [UIImage imageNamed:@"picture"];
newsVC.tabBarItem.selectedImage= [UIImageimageNamed:@"icon87"];
newsVC.tabBarItem.selectedImage= [newsVC.tabBarItem.selectedImageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
注:未被選中狀態的圖片默認會被渲染成灰色,但也使用與以上屬性(可設爲顯示某一張圖片的原色)