TabBarController的使用

TabBarController的使用

凡是加入的标签控制器的视图控制器都有tabBarItem和tabBarController两个属性

什么时候使用系统自带的tabBarController中的TabBar?

1.项目没有什么特别需求
2.美工能够给到30*30的镂空图片

如何使用系统自带的tabBarController?

1.点击StoryBoard,拖一个UITabBarController,并将其设置为初始化视图控制器
2.根据项目需求设置viewControllers
3.设置tabBar
1>点击相对应的tabItem,根据需求设置title和image

    凡是加入的标签控制器的视图控制器都有tabBarItem和tabBarController两个属性
    可以到对应的视图控制器中设置tabBarItem

自定义tabBarItem 当tabBar有嵌入导航控制器时需要通过navigationController作为属性媒介

//将系统的tabBar覆盖
    view = [[UIView alloc]initWithFrame:self.tabBar.bounds];
    view.backgroundColor = [UIColor whiteColor];
    [self.tabBar addSubview:view];

    for (int i = 0; i<4; i++) {
        //从IB载入自定义的TabBarItem(view)
        CustonTabBarItem *item = [[[NSBundle mainBundle]loadNibNamed:@"CustonTabBarItem" owner:self options:nil] lastObject];
        item.frame = CGRectMake(0+i*self.view.frame.size.width/4, 0, self.view.frame.size.width/4, 44);
        if (i==1) {
            [item.imageButton setImage:[UIImage imageNamed:@"demo1.jpg"] forState:0];
            [item.imageButton addTarget:self action:@selector(publishAction:) forControlEvents:UIControlEventTouchUpInside];
        }else{
            //选中状态与非选中状态的照片
            [item.imageButton setImage:[UIImage imageNamed:@"demo.jpg"] forState:0];
            [item.imageButton setImage:[UIImage imageNamed:@"demo2.jpg"] forState:UIControlStateSelected];
            [item.imageButton addTarget:self action:@selector(changeIndex:) forControlEvents:UIControlEventTouchUpInside];
        }
        //设置标记,判断点击的button
        item.imageButton.tag = 100+i;

        item.badgeLabel.text=@"3";
        if (i==0) {
            item.imageButton.selected = YES;
            tempButton = item.imageButton;
        }
        [view addSubview:item];
    }

-(void)publishAction:(UIButton *)sender{
    [self presentViewController:[ViewController new] animated:YES completion:^{

    }];
}

//选中状态与非选中状态的处理
-(void)changeIndex:(UIButton *)sender{
    //方法一
//    for (CustonTabBarItem *ele in view.subviews) {
//        ele.imageButton.selected = NO;
//    }
//    sender.selected = YES;

    //方法二 可判断双击
    if (sender.tag == tempButton.tag) {
        //同一个item 连续点击两下
        NSLog(@"点击两下");
        return;
    }

    tempButton.selected = NO;
    sender.selected = YES;
    tempButton = sender;

    if (sender.tag >101) {
        self.selectedIndex = sender.tag - 101;
    }else
        self.selectedIndex = sender.tag -100;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值