UI学习——分栏控制器


一、分栏控制器基础

1.基本概念

分栏控制器是管理多个视图控制器的管理控制器,通过数组的方式管理多个平行关系的视图控制器,与导航控制器的区别在于:导航控制器管理的是有层级关系的控制器。
分栏控制器在同一界面最多显示5个控制器切换按钮,超过5个时会自动创建一个新的导航控制器来管理其余的控制器。

2.基本属性

UITabBarltem :分栏按钮元素对象
badgeValue:分栏按钮提示信息
selectedindex:分栏控制器选中的控制器索引
viewControllers:分栏控制器管理数组
selectedViewController:分栏控制器选中的控制器对象

3.基本用法

首先我们创建三个视图控制器
请添加图片描述
接着我们在SceneDelegate.m文件中创建三个视图控制器对象

 //显示window
    [self.window makeKeyAndVisible];
    //创建视图控制器一
    VCFirst* vcFirst = [[VCFirst alloc] init];
    vcFirst.view.backgroundColor = [UIColor blueColor];
    //创建视图控制器二
    VCSecond* vcSecond = [[VCSecond alloc] init];
    vcSecond.view.backgroundColor = [UIColor yellowColor];
    //创建视图控制器三
    VCThird* vcThird = [[VCThird alloc] init];
    vcThird.view.backgroundColor = [UIColor orangeColor];
    vcFirst.title = @"视图1";
    vcSecond.title = @"视图2";
    vcThird.title = @"视图3";

然后我们创建分栏控制器对象并进行如下操作:

 //创建分栏控制器对象
    UITabBarController* tbController = [[UITabBarController alloc] init];
    //创建一个控制器数组对象
    //将所有要被分栏控制器管理的对象添加到数组中
    NSArray* arrayVC = [NSArray arrayWithObjects:vcFirst, vcSecond, vcThird, nil];
    //将分栏控制器管理数组赋值
    tbController.viewControllers = arrayVC;
    //将分栏控制器作为根视图控制器
    self.window.rootViewController = tbController;
    //设置选中的视图控制器的索引
    //通过索引来确定显示哪一个控制器
    tbController.selectedIndex = 2;
    //设置分栏控制器的工具栏的透明度
    tbController.tabBar.translucent = NO;

由于我们设置优先显示的视图是索引为2的视图,因此当我们运行时会先显示视图三
运行结果如下:

请添加图片描述

请添加图片描述

请添加图片描述

如果分栏控制器中没有按钮的话,默认情况下我们设置的title值会占用按钮的位置。

下面设置分栏按钮
创建分栏按钮有两种方法,第一种是自定义创建一个图片按钮

//自定义创建分栏按钮
    //P1:文字
    //P2:显示图片图标
    //P3:设置按钮的tag
    UITabBarItem* tabBarItem = [[UITabBarItem alloc] initWithTitle:@"按钮" image:nil tag:101];

第二种是根据系统风格创建分栏按钮

这里我设置的是系统的联系人按钮

 UITabBarItem* tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:101];
  //按钮右上角的提示信息
  //通常用来提示未读的信息
  tabBarItem.badgeValue = @"22";
  self.tabBarItem = tabBarItem;

运行结果如下:
请添加图片描述
我在VCFirst.m中进行创建分栏按钮,可以看到我们先前的视图一已经被联系人按钮所替换,并且按钮右上角就是我们设置的badgeValue值

二、分栏控制器高级

1.高级属性

我们先创建6个视图控制器请添加图片描述
接着我们创建上面那6个视图控制器的对象

 //创建一组视图控制器
    VCFirst* vc01 = [[VCFirst alloc] init];
    VCSecond* vc02 = [[VCSecond alloc] init];
    VCThird* vc03 = [[VCThird alloc] init];
    VCFourth* vc04 = [[VCFourth alloc] init];
    VCFifth* vc05 = [[VCFifth alloc] init];
    VCSixth* vc06 = [[VCSixth alloc] init];
    //设置背景颜色
    vc01.view.backgroundColor  = [UIColor redColor];
    vc02.view.backgroundColor  = [UIColor orangeColor];
    vc03.view.backgroundColor  = [UIColor yellowColor];
    vc04.view.backgroundColor = [UIColor greenColor];
    vc05.view.backgroundColor  = [UIColor blueColor];
    vc06.view.backgroundColor  = [UIColor purpleColor];
    
    vc01.title = @"视图1";
    vc02.title = @"视图2";
    vc03.title = @"视图3";
    vc04.title = @"视图4";
    vc05.title = @"视图5";
    vc06.title = @"视图6";

接着我们创建分栏控制器对象并设置属性

 NSArray* arrayVC = [NSArray arrayWithObjects:vc01, vc02, vc03, vc04, vc05, vc06, nil];
    UITabBarController* tbController = [[UITabBarController alloc] init];
    tbController.viewControllers = arrayVC;
    self.window.rootViewController = tbController;
     //改变工具栏颜色
        tbController.tabBar.backgroundColor = [UIColor clearColor];
    //改变按钮文字颜色
    tbController.tabBar.tintColor = [UIColor blackColor];

运行结果如下:

请添加图片描述

请添加图片描述

在这里插入图片描述
可以看到我们工具栏中只有四个视图,当我们点击More时会显示剩下的两个视图。当我们点击右上角的Edit进入如下界面就可以将视图的位置进行调换
在这里插入图片描述

总结

以上就是本篇文章的全部内容。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值