• tabBar用block实现自定义


    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        
        NSMutableArray *viewContrs=[[NSMutableArray alloc]init];
        for (int i=0; i<5; i++)
        {
            UIViewController *viewContr=[[UIViewController alloc]init];
            viewContr.view.backgroundColor=[UIColor colorWithRed:i*0.2 green:i*0.2 blue:0.5 alpha:0.8];
            [viewContrs addObject:viewContr];
        }
        //创建标签控制器
        tabBarViewContr=[[UITabBarController alloc]init];
        tabBarViewContr.viewControllers=viewContrs;
        
        //把图片存入5个对象中再存入数组中
        NSMutableArray *items=[[NSMutableArray alloc]init];
        for (int i=0; i<5; i++)
        {
            Items *item=[[Items alloc]init];
            NSString *str=[NSString stringWithFormat:@"%d.jpg",i+1];
            [item setImage:[UIImage imageNamed:str] title:str];
            [items addObject:item];
        }
        
        //自定义的tabBar
        TabBar *tabBar1=[[TabBar alloc]initWithFrame:tabBarViewContr.tabBar.bounds];
        tabBar1.itemArray=items;
    //    tabBar1.delegate=self;
        tabBar1.block=^(TabBar *sender,NSInteger tag){
    //        [self tabBar:sender didTag:tag];
            tabBarViewContr.selectedIndex=tag;
        };
        
    //    tabBarViewContr.tabBar.hidden=YES;
        [tabBarViewContr.tabBar addSubview:tabBar1];
        
        
        self.window.rootViewController=tabBarViewContr;
        return YES;
    }
    
    


    自定义的TabBar实现文件
    - (void)setItemArray:(NSArray *)items
    {
        CGFloat width=self.frame.size.width/items.count;
        for (int i=0; i<items.count; i++)
        {
            Items *item=[items objectAtIndex:i];
            UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
            btn.frame=CGRectMake(i*width, 0, width, self.frame.size.height-15);
            [btn addTarget:self action:@selector(didClicked:) forControlEvents:UIControlEventTouchUpInside];
            btn.tag=i;
            [btn setImage:item.image forState:UIControlStateNormal];
            [self addSubview:btn];
            
            //显示文字
            UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(i*width, self.frame.size.height-15, width, 15)];
            label.text=item.title;
            label.textAlignment=NSTextAlignmentCenter;
            [self addSubview:label];
        }
    }
    
    
    

    - (void)didClicked:(UIButton *)sender { if (_delegate&&[_delegate respondsToSelector:@selector(tabBar:didTag:)]) { [_delegate tabBar:self didTag:sender.tag]; } _block(self,sender.tag); }
  • 相关阅读:
    Leetcode Array 4 Median of Two Sorted Arrays
    vscode Python Pylint(代码检测插件)
    Leetcode Array 1 twoSum
    mysql 配置 安装和 root password 更改
    vscode 编译调试c/c++的环境配置
    chm文件打不开的解决办法
    A + B Problem II
    欢天喜地七仙女——代码规范与计划
    欢天喜地七仙女——项目系统设计与数据库设计
    欢天喜地七仙女——团队Gitee实战训练
  • 原文地址:https://www.cnblogs.com/lidongq/p/3925439.html
Copyright © 2020-2023  润新知