美文网首页iOS开发常用
ios-UI基础控件-UITabBarController的详细

ios-UI基础控件-UITabBarController的详细

作者: 风一样的程序员 | 来源:发表于2016-06-17 09:53 被阅读70次
    像我这么帅的,一般都是主角哦

    UITabBarController的创建步骤

    UITabBarController 和UINavigationController类似(可以相互嵌套使用),UITabBarController也可以管理多个控制器,完成控制器之间的切换

    步骤如下:

    1. 创建初始化UITabBarController
    2. 设置UIWindow的rootViewController为UITabBarController
    3. 创建相应的子控制器(viewcontroller)
    4. 把子控制器添加到UITabBarController

    代码示例

    • 这里仅列出三个controller控制器
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        //创建UITabBarController控制器
        UITabBarController *tabVc = [UITabBarController new];
        //创建第一个控制器
        FirstViewController *firstVc = [FirstViewController new];
        //设置第一个控制器的tabBarItem的样式
        //如果图片出现和原有样子较大的差别,那么设置为不被渲染
        UIImage *selectedImage = [UIImage imageNamed:@"carRed@2x.png"];
        selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        firstVc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"车型" image:[UIImage imageNamed:@"carGary.png" ]selectedImage:selectedImage];
        firstVc.tabBarItem.badgeValue=@"123";
        //将视图控制器添加到导航控制器中
        UINavigationController *n1 = [[UINavigationController alloc] initWithRootViewController:firstVc];
        //创建第二个视图控制器
        SecondViewController *secondVc = [SecondViewController new];
        UINavigationController *n2 = [[UINavigationController alloc] initWithRootViewController:secondVc];
        //设置第二个控制器的tabBarItem的样式
        secondVc.tabBarItem.title=@"联系人";
        secondVc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"查找" image:[UIImage imageNamed:@"findGray.png" ]selectedImage:[UIImage imageNamed:@"findRed.png"]];
        
        //创建第三个视图控制器
        ThirdViewController *thirdVc = [ThirdViewController new];
        UINavigationController *n3 = [[UINavigationController alloc] initWithRootViewController:thirdVc];
        //设置第三个控制器的tabBarItem的样式
        thirdVc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"计划" image:[UIImage imageNamed:@"planeGary.png" ]selectedImage:[UIImage imageNamed:@"planeRed.png"]];
        //将所有的视图控制器添加到tabVc的子视图控制器中
        tabVc.viewControllers = @[n1, n2, n3];
        //将tabVc设置为根视图控制器
        self.window.rootViewController = tabVc;
        self.window.backgroundColor = [UIColor whiteColor];
    }
    

    tabBar的常用属性

        //字体颜色
        tabVc.tabBar.tintColor = [UIColor redColor];
        //背景颜色
        tabVc.tabBar.barTintColor = [UIColor yellowColor];
        //默认选择
        tabVc.selectedIndex = 2;
        //tabBar上透明度
        tabVc.tabBar.translucent = YES;
    

    *效果如图所示


    示例图

    图片不被渲染,保持图片本身样式

    UIImage *selectedImage = [UIImage imageNamed:@"carRed@2x.png"]; selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    

    实现协议中的方法(< UITabBarControllerDelegate >)

     -(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
           NSLog(@"%ld",tabBarController.selectedIndex); 
    }
    

    设置tabBar全局外观的方法

    appearance 本质是系统封装好的单例, 小数据情况下,没有必要使用单例,单例是全局的,它的生命周期和程序一样长,如果使用appearance去修改响应空间的外观,应该在APPDeleagte中进行设置,否则很容易出现无效的情况

        [[UITabBar appearance] setBarTintColor:[UIColor cyanColor]];
        [[UITabBar appearance] setTintColor:[UIColor redColor]];
        [[UINavigationBar appearance] setTintColor:[UIColor yellowColor]];
    

    相关文章

      网友评论

        本文标题:ios-UI基础控件-UITabBarController的详细

        本文链接:https://www.haomeiwen.com/subject/bucvdttx.html