zoukankan      html  css  js  c++  java
  • UITabBar UITabBarController

    //UITabBar 标签栏,是标签栏控制器view的子视图 (320*49),UITabBarItem 展示在UITabBar上
        //nav1.tabBarItem.title = @"主页";
        //title属性,能够同时设置navigationItem.title和tabBarItem.title
        vc1.title = @"主页";
        //nav1.navigationItem.title
        //设置图片,图片最佳显示大小(30*30)视网膜屏:(60*60)
        nav1.tabBarItem.image = [UIImage imageNamed:@"tab_0.png"];
        
        //badgeValue 设置徽标
        vc4.tabBarItem.badgeValue = @"4";
        
        
        //标签栏控制器,特殊的vc,能够管理其他vc
        //UITabBarController *tab
        UITabBarController *tab = [[UITabBarController alloc] init];
        //接收带有vc对象的数组,当数组中vc对象超过5个时,标签栏控制器会自动生成一个moreNavigaitonController,原来第5、6个模块通过列表的形式呈现
        //tab.moreNavigationController
        tab.viewControllers = controllers;
        //设置选中的模块
        //tab.selectedIndex =1;
        //tab.selectedViewController = controllers[1];
        
        //设置代理
        tab.delegate = self;
    //切换底部的视图控制器时,触发此方法
    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
        NSLog(@"vc title:%@",viewController.title);
        //当点击的时候储存标题
    }
    
    
    //完全自定义
    - (void) createControllers{
        NSString * path = [[NSBundle mainBundle] pathForResource:@"LDYTabBarController" ofType:@"plist"];
        CGRect frame = [[UIScreen mainScreen] bounds];
        UIImageView * bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, 49)];
        bgImageView.userInteractionEnabled = YES;
        bgImageView.tag = 999;
        bgImageView.image = [UIImage imageNamed:@"tabbar_background"];
        NSArray * array = [NSArray arrayWithContentsOfFile:path];
        NSInteger space = (self.view.frame.size.width - kBtnWidth * array.count) / (array.count + 1);
        NSMutableArray * controllers = [NSMutableArray array];
        for (NSInteger i = 0 ; i < [array count]; i++) {
            NSDictionary * dict = [array objectAtIndex:i];
            NSString * className = [dict objectForKey:@"controller"];
            Class  class = NSClassFromString(className);
            UIViewController * vc = [[class alloc] init];
            UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:vc];
            [controllers addObject:nav];
            NSString * imageName = [dict objectForKey:@"iconName"];
            NSString * selectImageName = [imageName stringByAppendingString:@"_select"];
            UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
            [btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
            [btn setImage:[UIImage imageNamed:selectImageName] forState:UIControlStateSelected];
            btn.tag = i + 800;
            btn.frame = CGRectMake(space + i * (space + kBtnWidth), 0, kBtnWidth, kBtnHeight);
            [btn addTarget:self action:@selector(btnClicked:)  forControlEvents:UIControlEventTouchUpInside];
            UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(space + i * (space + kBtnWidth) , 28, kBtnWidth, 19)];
            [label setFont:[UIFont systemFontOfSize:11]];
            label.textAlignment = NSTextAlignmentCenter;
            [label setText:[dict objectForKey:@"title"]];
            [label setTextColor:[UIColor blackColor]];
            label.tag = i + 900;
            [label setHighlightedTextColor:[UIColor orangeColor]];
            if (i == 0) {
                btn.selected = YES;
                label.highlighted = YES;
                _oldSelectedBtnTag = 800;
            }
            [bgImageView addSubview:btn];
            [bgImageView addSubview:label];
        }
        self.viewControllers = controllers;
        [self.tabBar addSubview:bgImageView];
        
    }
    
    - (void) btnClicked:(UIButton *)btn{
        UIButton * oldBtn = (UIButton *)[self.view viewWithTag:_oldSelectedBtnTag];
        oldBtn.selected = NO;
        UILabel * oldLabel = (UILabel *)[self.view viewWithTag:_oldSelectedBtnTag + 100];
        oldLabel.highlighted = NO;
        UILabel * label = (UILabel *)[self.view viewWithTag:btn.tag + 100];
        label.highlighted = YES;
        btn.selected = YES;
        _oldSelectedBtnTag = btn.tag;
        self.selectedIndex = btn.tag - 800;
        UIImageView * bgImageView = (UIImageView *)[self.view viewWithTag:999];
        [self.tabBar bringSubviewToFront:bgImageView];
        
    }
  • 相关阅读:
    Oracle10g之SGA与PGA分配建议
    Oracle 用户权限管理方法
    快速部署RDA Remote Diagnostic Agent
    转 :Oracle 数据库信息收集工具RDA使用指南 Oracle 数据库信息收集工具RDA使用指南
    AIX6.1下配置Nmon性能工具
    优化 AIX 6.1 的性能
    使用Oracle外部表来查询分析警告日志
    qq
    Java字符串2
    java字符串
  • 原文地址:https://www.cnblogs.com/liudongyan/p/4399294.html
Copyright © 2011-2022 走看看