• CustomTabBarViewController


    //  AppDelegate.m
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import "AppDelegate.h"
    #import "CustomTabBarViewController.h"
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        CustomTabBarViewController *customTabBar= [[CustomTabBarViewController alloc]init];
        self.window.rootViewController=customTabBar;
        return YES;
    }
    
    
    
    //
    //  ViewController.h
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController
    
    
    @end
    
    
    //  ViewController.m
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    
    //  CustomTabBarViewController.h
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface CustomTabBarViewController : UITabBarController
    
    @end
    
    
    //
    //  CustomTabBarViewController.m
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import "CustomTabBarViewController.h"
    #import "FirstViewController.h"
    #import "SecondViewController.h"
    #import "ThirdViewController.h"
    #import "FourthViewController.h"
    @interface CustomTabBarViewController ()
    
    @end
    
    @implementation CustomTabBarViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        //隐藏系统tabbar
        self.tabBar.hidden=YES;
        
        //创建视图控制器数组
        [self creatViewController];
        
        //
        //创建tabbar
        UIImageView *bgView =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"tabbg"]];
        bgView.tag=499;
        bgView.frame=CGRectMake(0, self.view.frame.size.height-49, self.view.frame.size.width, 49);
        [self.view addSubview:bgView];
        self.view.backgroundColor=[UIColor cyanColor];
        //打开用户交互使能
        bgView.userInteractionEnabled=YES;
        CGFloat space =(self.view.frame.size.width-4*30)/5;
        
        for (int i=0; i<4; i++) {
            UIButton *btn =[UIButton buttonWithType:UIButtonTypeCustom];
            btn.frame=CGRectMake(space+i*(30+space),9, 30, 30);
            NSString *imageName =[NSString stringWithFormat:@"tab_%i",i];
            NSString *selectimageName =[NSString stringWithFormat:@"tab_c%i",i];
            //设置正常状态图片
            [btn setBackgroundImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
            //设置选中状态图片
            [btn setBackgroundImage:[UIImage imageNamed:selectimageName] forState:UIControlStateSelected];
            //添加点击事件
            [btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
            btn.tag=100+i;
            
            //设置选中状态的btn
            if(btn.tag==100)
            {
                btn.selected=YES;
            }
            [bgView addSubview:btn];
        }
        
        UILabel *label =[[UILabel alloc]initWithFrame:CGRectMake(space, 40, 30, 4)];
        label.backgroundColor=[UIColor orangeColor];
        label.tag=498;
        [bgView addSubview:label];
        
        
    }
    
    -(void)btnClicked:(UIButton *)btn
    {
        
        //self.selectedIndex=3;
        //记录选中的button
        NSInteger index =btn.tag-100;
        UIView *bgView =[self.view viewWithTag:499];
        for (UIView *view in bgView.subviews) {
            if(view.tag!=498)
            {
                if(btn.tag==view.tag)
                {
                    //btn.selected=YES;
                    ((UIButton *)view).selected=YES;
                    
                }
                else{
                    //btn.selected=NO;
                    ((UIButton *)view).selected=NO;
                }
            }
        }
        self.selectedIndex=index;
        
        
        UILabel *label =(UILabel *)[bgView viewWithTag:498];
        CGFloat space =(self.view.frame.size.width-4*30)/5;
        [UIView animateWithDuration:0.3 animations:^(void){
            CGRect frame =label.frame;
            frame.origin.x  =space+(space +30)*index;
            label.frame=frame;
        }];
    }
    
    -(void)creatViewController
    {
        FirstViewController *firstVC=[[FirstViewController alloc]init];
        SecondViewController *secondVC=[[SecondViewController alloc]init];
        ThirdViewController *thirdVC=[[ThirdViewController alloc]init];
        FourthViewController *fourthVC =[[FourthViewController alloc]init];
        
        NSArray *viewController =[NSArray arrayWithObjects:firstVC,secondVC,thirdVC,fourthVC, nil];
        self.viewControllers=viewController;
        //self.tabBarController.viewControllers=viewController;
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    /*
     #pragma mark - Navigation
     
     // In a storyboard-based application, you will often want to do a little preparation before navigation
     - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
     // Get the new view controller using [segue destinationViewController].
     // Pass the selected object to the new view controller.
     }
     */
    
    @end
    
    //  FourthViewController.h
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface FourthViewController : UIViewController
    
    @end
    
    
    //  FourthViewController.m
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import "FourthViewController.h"
    
    @interface FourthViewController ()
    
    @end
    
    @implementation FourthViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.view.backgroundColor=[UIColor redColor];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    
    
    //  ThirdViewController.h
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface ThirdViewController : UIViewController
    
    @end
    
    
    
    //  ThirdViewController.m
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import "ThirdViewController.h"
    
    @interface ThirdViewController ()
    
    @end
    
    @implementation ThirdViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.view.backgroundColor=[UIColor blueColor];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    
    
    //  SecondViewController.h
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface SecondViewController : UIViewController
    
    @end
    
    
    
    //  SecondViewController.m
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import "SecondViewController.h"
    
    @interface SecondViewController ()
    
    @end
    
    @implementation SecondViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.view.backgroundColor=[UIColor cyanColor];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    
    //  FirstViewController.h
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface FirstViewController : UIViewController
    
    @end
    
    
    //  FirstViewController.m
    //  CustomTabBar
    //
    //  Created by qianfeng on 15/7/9.
    //  Copyright (c) 2015年 qianfeng. All rights reserved.
    //
    
    #import "FirstViewController.h"
    
    @interface FirstViewController ()
    
    @end
    
    @implementation FirstViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.view.backgroundColor=[UIColor yellowColor];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
  • 相关阅读:
    1104.整除问题
    1101.表达式求值(难)
    1102.最小子面积矩阵
    1095.2的幂次方
    1094.String matching
    1093.WERTYU
    1096.日期差值
    1092.Fibonacci
    车站解题程序
    阶乘之和解题程序
  • 原文地址:https://www.cnblogs.com/0515offer/p/4649540.html
Copyright © 2020-2023  润新知