UITabBarController
2016-07-09 本文已影响260人
我是花老虎
UITabBarController的属性
- viewControllers
UIViewController
的数组,即要显示的VC,数组中VC的顺序即是实际展示的VC的顺序。UITabBarController最多展示5个tab,如果数组中的元素的个数超过了5个,会正常展示前四个tab,然后有一个更多的tab,可以选择其他的tab。
- customizableViewControllers
点击更多时,会有编辑按钮,然后用户可以对这些tab排序。此时,可以进行排序的tabvc是在这个数组内,不在这个数组内的,不会参与排序。
此时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
选中态的图像