//
// TabBarViewController.h
// LittleLoveLive
//
// Created by YJ
//
// TabBarViewController.m
// LittleLoveLive
//
// Created by YJ on 16/7/16.
// Copyright © 2016年 YJ. All rights reserved.
//
#import "TabBarViewController.h"
#import "RootNavigationController.h"
#import "HomeViewController.h"
#import "LiveViewController.h"
#import "MeViewController.h"
@interface TabBarViewController ()
@end
@implementation TabBarViewController
- (
void)viewDidLoad {
[super viewDidLoad];
[self setupTheLine];
[self initialControllers];
}
//初始化子控制器
-(
void)initialControllers {
[self setupController:[[HomeViewController alloc]init] image:@"icon_home_normal.png" selectedImage:
@"icon_home_pressed.png" title:nil];
[self setupController:[[LiveViewController alloc]init] image:@"icon_live_normal.png" selectedImage:
@"icon_live_pressed.png" title:nil];
[self setupController:[[MeViewController alloc] init] image:@"icon_me_normal.png" selectedImage:
@"icon_me_pressed.png" title:nil];
}
//设置控制器
-(
void)setupController:(UIViewController *)childVc image:(NSString *)image selectedImage:(NSString *)selectedImage title:(NSString *
)title {
//标题
childVc.title =
title;
//childVc.view.backgroundColor = RGBACOLOR(239.0f, 239.0f, 244.0f, 1.0f);
//tabBarItem图片
childVc.tabBarItem.image =
[[UIImage imageNamed:image] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
childVc.tabBarItem.selectedImage =
[[UIImage imageNamed:selectedImage]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
//tabBarItem字体的设置
//正常状态
NSMutableDictionary *normalText =
[NSMutableDictionary dictionary];
normalText[NSForegroundColorAttributeName] = [UIColor colorWithRed:
123/
255.0 green:
123/
255.0 blue:
123/
255.0 alpha:
1.0];
[childVc.tabBarItem setTitleTextAttributes:normalText forState:UIControlStateNormal];
//选中状态
NSMutableDictionary *selectedText =
[NSMutableDictionary dictionary];
selectedText[NSForegroundColorAttributeName] =
[UIColor blackColor];
[childVc.tabBarItem setTitleTextAttributes:selectedText forState:UIControlStateSelected];
RootNavigationController *nav =
[[RootNavigationController alloc]initWithRootViewController:childVc];
[self addChildViewController:nav];
}
//设置分割线
-(
void)setupTheLine {
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(
0, -
8, self.tabBar.frame.size.width, self.tabBar.frame.size.height)];
[imageView setImage:[UIImage imageNamed:@"bg_tabbar"]];
[imageView setContentMode:UIViewContentModeCenter];
[self.tabBar insertSubview:imageView atIndex:0];
//覆盖原生Tabbar的上横线
[[UITabBar appearance] setShadowImage:[self createImageWithColor:[UIColor clearColor]]];
[[UITabBar appearance] setBackgroundImage:[self createImageWithColor:[UIColor clearColor]]];
//设置TintColor
// UITabBar.appearance.tintColor = [UIColor orangeColor];
}
-(UIImage*) createImageWithColor:(UIColor*
) color
{
CGRect rect=CGRectMake(
0.0f,
0.0f,
1.0f,
1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context =
UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *theImage =
UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return theImage;
}
//设置中间按钮不受TintColor影响
- (
void)awakeFromNib {
[super awakeFromNib];
NSArray *items =
self.tabBar.items;
//设置第几个 tabBar不受影响
UITabBarItem *btnAdd = items[
1];
btnAdd.image =
[btnAdd.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
btnAdd.selectedImage =
[btnAdd.selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
- (
void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
on 16/7/16.
// Copyright © 2016年 YJ. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface TabBarViewController : UITabBarController
@end
转载于:https://www.cnblogs.com/ningmengcao-ios/p/5728007.html
相关资源:ios-自定义有弧度的 tabBar.zip