UITabBarController的屬性
- viewControllers
UIViewController
的數組,即要顯示的VC,數組中VC的順序即是實際展示的VC的順序。UITabBarController最多展示5個tab,如果數組中的元素的個數超過了5個,會正常展示前四個tab,然后有一個更多的tab,可以選擇其他的tab。
多余5個tab時,顯示更多
- customizableViewControllers
點擊更多時,會有編輯按鈕,然后用戶可以對這些tab排序。此時,可以進行排序的tabvc是在這個數組內,不在這個數組內的,不會參與排序。
多個tab時可以排序
此時viewControllers數組有6個元素,customizableViewControllers有5個對象。因此,可以排列的VC個數只有5個。
如果不設置customizableViewControllers屬性,那么默認所有的VC都可以進行排序。
- selectedIndex與selectedViewController
設置哪一個tab被選中,可讀可寫
UITabBar
UItabBarController有一個叫做tabBar的屬性,卻是只讀的。tabBar由很多tabBarItem
來配置,每一個tabBarItem
都是由對應的VC來配置的。每一個VC都有一個tabBarItem
的屬性。通過設置每一個VC的tabBarItem
屬性,然后把這些VC加到UITabBarController的viewControllers
中,即可定制底部tabbar的屬性。
self.catVC?.tabBarItem = UITabBarItem.init(title: "cat",
image:TGResizeImage(image!,byRatio: 0.5).imageWithRenderingMode(.AlwaysOriginal),
tag: 0);
self.pigVC?.tabBarItem = UITabBarItem.init(title: "pig",
image:TGResizeImage(image!,byRatio: 0.5).imageWithRenderingMode(.AlwaysOriginal),
tag: 1);
self.duckVC?.tabBarItem = UITabBarItem.init(title: "duck",
image:TGResizeImage(image!,byRatio: 0.5).imageWithRenderingMode(.AlwaysOriginal),
tag: 2)
self.sheepVC?.tabBarItem = UITabBarItem.init(title: "sheep",
image:TGResizeImage(image!,byRatio: 0.5).imageWithRenderingMode(.AlwaysOriginal),
tag: 3)
self.carVC?.tabBarItem = UITabBarItem.init(title: "car",
image:TGResizeImage(image!,byRatio: 0.5).imageWithRenderingMode(.AlwaysOriginal),
tag: 4)
self.extralVC?.tabBarItem = UITabBarItem.init(title: "extra",
image:TGResizeImage(image!,byRatio: 0.5).imageWithRenderingMode(.AlwaysOriginal),
tag: 5)
self.viewControllers = [self.catVC!,self.pigVC!,self.duckVC!,self.sheepVC!,self.carVC!,self.extralVC!];
- backgroundImage
背景圖,如果不是可拉伸的,那么背景圖會向瓦片一樣平鋪。原文是
the tab bar tiles the image
- shadowImage
TabBar上面的圖像。如果要設置這個屬性,必須先設置backgroundImage
屬性,否則會安裝設置一個默認的image- 如何取消TabBar上面的一條虛線
有虛線
self.tabBar.setValue(1, forKey: "_hidesShadow")
沒有虛線
- selectionIndicatorImage
選中態的圖像