UITabBarController

UITabBarController的属性

  • viewControllers
    UIViewController的数组,即要显示的VC,数组中VC的顺序即是实际展示的VC的顺序。UITabBarController最多展示5个tab,如果数组中的元素的个数超过了5个,会正常展示前四个tab,然后有一个更多的tab,可以选择其他的tab。
多余5个tab时,显示更多
  • customizableViewControllers
    点击更多时,会有编辑按钮,然后用户可以对这些tab排序。此时,可以进行排序的tabvc是在这个数组内,不在这个数组内的,不会参与排序。
UITabBarController_第1张图片
多个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上面的一条虚线
UITabBarController_第2张图片
有虚线
self.tabBar.setValue(1, forKey: "_hidesShadow")
没有虚线
  • selectionIndicatorImage
    选中态的图像

你可能感兴趣的:(UITabBarController)