• 2015-03-19之UITabBarController简单介绍


    UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应⽤。
    切记给UItabbarItem指定图片时,图片的高度不能大于49,由于UItabbarItem的高度最多为49,大于会显示错误的效果。
     

    二、UITabBarController的使用

    1.使用步骤:

    (1)初始化UITabBarController

    (2)设置UIWindow的rootViewController为UITabBarController

    (3)创建相应的子控制器(viewcontroller)

    (4)把子控制器添加到UITabBarController

    2.代码示例

    新建一个空的文件,在Application的代理中编码

    YYAppDelegate.m文件

    复制代码
    //  Created by fly on 15/3/19.
    //  Copyright (c) 2015年 com.fenda. All rights reserved.
    //

    #import "AppDelegate.h"

    @interface AppDelegate ()

    @end

    @implementation AppDelegate


    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
       
        //1.创建Window
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
       self.window.backgroundColor = [UIColor whiteColor];
      
          //a.初始化一个tabBar控制器
           UITabBarController *tb=[[UITabBarController alloc]init];
        //调整TabBar显示的位置
    //    tb.tabBar.frame = CGRectMake(0, 460-40, 320, 40);
    //    UIView * transitionView = [[tb.view subviews] objectAtIndex:0];
    //    [transitionView setFrame:CGRectMake(0, 0, 320, 460-40)];
             //设置控制器为Window的根控制器
            self.window.rootViewController=tb;
      
           //b.创建子控制器
             UIViewController *c1=[[UIViewController alloc]init];
             c1.view.backgroundColor=[UIColor grayColor];
             c1.view.backgroundColor=[UIColor greenColor];
            c1.tabBarItem.title=@"消息";
            c1.tabBarItem.image=[[UIImage imageNamed:@"tabBar"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
            c1.tabBarItem.selectedImage = [[UIImage imageNamed:@"tabSelect"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
             c1.tabBarItem.badgeValue=@"123";
       
            UIViewController *c2=[[UIViewController alloc]init];
             c2.view.backgroundColor=[UIColor brownColor];
             c2.tabBarItem.title=@"联系人";
            c2.tabBarItem.image=[[UIImage imageNamed:@"tabBar"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
            c2.tabBarItem.selectedImage = [[UIImage imageNamed:@"tabSelect"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
      
            UIViewController *c3=[[UIViewController alloc]init];
             c3.tabBarItem.title=@"动态";
            c3.tabBarItem.image=[[UIImage imageNamed:@"tabBar"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
            c3.tabBarItem.selectedImage = [[UIImage imageNamed:@"tabSelect"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
       
             UIViewController *c4=[[UIViewController alloc]init];
             c4.tabBarItem.title=@"设置";
            c4.tabBarItem.image=[[UIImage imageNamed:@"tabBar"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
            c4.tabBarItem.selectedImage = [[UIImage imageNamed:@"tabSelect"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
       
      
             //c.添加子控制器到ITabBarController中
            //c.1第一种方式
        //    [tb addChildViewController:c1];
        //    [tb addChildViewController:c2];
      
             //c.2第二种方式
             tb.viewControllers=@[c1,c2,c3,c4];
             //2.设置Window为主窗口并显示出来
            [self.window makeKeyAndVisible];
       
        return YES;
    }
     
    复制代码

    实现效果:

    三、重要说明

    1.UITabBar 

    下方的工具条称为UITabBar ,如果UITabBarController有N个子控制器,那么UITabBar内部就会有N 个UITabBarButton作为子控件与之对应。

    注意:UITabBarButton在UITabBar中得位置是均分的,UITabBar的高度为49。

    在上面的程序中,UITabBarController有4个子控制器,所以UITabBar中有4个UITabBarButton,UITabBar的结构⼤大致如下图所示:

     

     

    2.UITabBarButton 

    UITabBarButton⾥面显⽰什么内容,由对应子控制器的tabBarItem属性来决定 

     c1.tabBarItem.title=@"消息";
     c1.tabBarItem.image=[UIImage imageNamed:@"tab_recent_nor"];
    

    3.有两种方式可以往UITabBarController中添加子控制器 

    (1)[tb addChildViewController:c1];

    (2)tb.viewControllers=@[c1,c2,c3,c4];

    注意:展示的顺序和添加的顺序一致,和导航控制器中不同,展现在眼前的是第一个添加的控制器对应的View。

     
     
     
  • 相关阅读:
    【JMeter_14】JMeter逻辑控制器__交替控制器<Interleave Controller>
    【JMeter_13】JMeter逻辑控制器__执行时间控制器<Runtime Controller>
    【JMeter_12】JMeter逻辑控制器__包括控制器<Include Controller>
    【JMeter_11】JMeter逻辑控制器__Switch控制器<Switch Controller>
    【JMeter_10】JMeter逻辑控制器__ForEach控制器<ForEach Controller>
    【JMeter_09】JMeter逻辑控制器__临界部分控制器<Critical Section Controller>
    【JMeter_08】JMeter逻辑控制器__While控制器<While Controller>
    【JMeter_07】JMeter逻辑控制器__循环控制器<Loop Controller>
    【JMeter_06】JMeter逻辑控制器__If控制器<If Controller>
    【JMeter_05】创建第一个简单的接口脚本
  • 原文地址:https://www.cnblogs.com/flylovesky/p/4349989.html
Copyright © 2020-2023  润新知