zoukankan      html  css  js  c++  java
  • iOS 自定义一个常规的TabBar

    #import "WJWBaseTabBarViewController.h"
    #import "WJWTabBarButton.h"
    #import "WJWMainViewController.h"
    #import "WJWDiscoverViewController.h"
    #import "WJWMyViewController.h"
    
    
    @interface WJWBaseTabBarViewController ()
    @property (nonatomic, weak) UIButton *selectedBtn;
    
    @end
    
    @implementation WJWBaseTabBarViewController
    
    + (void)load {
        UITabBarItem *item = [UITabBarItem appearanceWhenContainedInInstancesOfClasses:@[[self class]]];
        NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
        attrs[NSForegroundColorAttributeName] = [UIColor blackColor];
        [item setTitleTextAttributes:attrs forState:UIControlStateSelected];
        
        NSMutableDictionary *attrsFontNormal = [NSMutableDictionary dictionary];
        attrsFontNormal[NSFontAttributeName] = [UIFont systemFontOfSize:13];
        [item setTitleTextAttributes:attrs forState:UIControlStateSelected];
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        [self configAllSunTabs];
        [self setAllTabBarItems];
    }
    
    
    - (void)configAllSunTabs {
        WJWMainViewController *mainVC = [[WJWMainViewController alloc] init];
        UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:mainVC];
        [self addChildViewController:nav1];
        
        WJWDiscoverViewController *disVC = [[WJWDiscoverViewController alloc] init];
        UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:disVC];
        [self addChildViewController:nav2];
        
        WJWMyViewController *myVC = [[WJWMyViewController alloc] init];
        UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:myVC];
        [self addChildViewController:nav3];
        
    }
    
    - (void)setAllTabBarItems {
        NSArray *normalBtnArray = @[@"home_normal",@"faxian_normal",@"shequ_normal",@"haoyou_normal",@"wode_normal"];
        NSArray *highlightBtnArray = @[@"home_highlight",@"faxian_highlight",@"shequ_highlight",@"haoyou_highlight",@"wode_highlight"];
        
        NSArray *titleArray = @[@"首页",@"发现",@"社区",@"好友",@"我的"];
        
        
        UINavigationController *nav1 = self.childViewControllers[0];
        nav1.tabBarItem.title = titleArray[0];
        nav1.tabBarItem.image = [UIImage imageNamed:normalBtnArray[0]];
        nav1.tabBarItem.selectedImage = [UIImage imageNamed:highlightBtnArray[0]];
        
        UINavigationController *nav2 = self.childViewControllers[1];
        nav2.tabBarItem.title = titleArray[1];
        nav2.tabBarItem.image = [UIImage imageNamed:normalBtnArray[1]];
        nav2.tabBarItem.selectedImage = [UIImage imageNamed:highlightBtnArray[1]];
    
        
        UINavigationController *nav3 = self.childViewControllers[2];
        nav3.tabBarItem.title = titleArray[4];
        nav3.tabBarItem.image = [UIImage imageNamed:normalBtnArray[4]];
        nav3.tabBarItem.selectedImage = [UIImage imageNamed:highlightBtnArray[4]];
    }
        
    
    - (void)viewDidLayoutSubviews {
        
    }
    
    
    /*
    #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
    

    AppDelegete.m 中把tabBarController设置为 window的根控制器。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        WJWBaseTabBarViewController *baseTabBar = [[WJWBaseTabBarViewController alloc] init];
        
        self.window.rootViewController = baseTabBar;
        [self.window makeKeyAndVisible];
        return YES;
    }
    
  • 相关阅读:
    风火轮 –动画效果:擦除、形状、轮子、随机线条、翻转远近、缩放、旋转、弹跳效果
    风火轮 –动画效果:浮入与劈裂
    风火轮 – 飞入动画效果
    风火轮 1
    CB XE6初体验
    在CB2010中调用ffmpeg(5)
    在CB2010中调用ffmpeg(4)
    在CB2010中调用ffmpeg(3)
    在CB2010中调用ffmpeg(2)
    0-99累加
  • 原文地址:https://www.cnblogs.com/wjw-blog/p/10674851.html
Copyright © 2011-2022 走看看