在使用storyboard时,如何更改UITabBar的样式呢?

在IOS7中,使用storyboard添加uitabbarcontroller后,样式无法更改,默认的样式难免100%和自己的APP风格一样。

此时需要更改uitabbar样式。

我是这么做的,先新建一个RootTabBarController继承UITabBarController,然后在storyboard里关联一下


RootTabBarController.h文件

#import <UIKit/UIKit.h>

@interface RootTabBarController : UITabBarController<UITabBarControllerDelegate>

@end

RootTabBarController.m文件


#import "RootTabBarController.h"

@interface RootTabBarController ()

@end

@implementation RootTabBarController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    //设置背影
    [self.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_home_bg"]];
    self.tabBar.layer.borderWidth = 0;
    self.delegate = self;
    NSArray *items = self.tabBar.items;
    UITabBarItem *homeItem = items[0];
    //设置每个按钮的图标
    homeItem.image = [[UIImage imageNamed:@"home"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    homeItem.selectedImage = [[UIImage imageNamed:@"home"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    UITabBarItem *exchangeItem = items[1];
    exchangeItem.image = [[UIImage imageNamed:@"exchange"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    exchangeItem.selectedImage = [[UIImage imageNamed:@"exchange"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    UITabBarItem *accountItem = items[2];
    accountItem.image = [[UIImage imageNamed:@"account"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    accountItem.selectedImage = [[UIImage imageNamed:@"account"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    UITabBarItem *settingItem = items[3];
    settingItem.image = [[UIImage imageNamed:@"setting"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    settingItem.selectedImage = [[UIImage imageNamed:@"setting"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
//当uitabbaritem被选中时做出对应的改变
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{

    //UITabBarItem *itme = self.tabBar.items[self.selectedIndex];
    //itme.badgeValue = nil;
    switch (self.selectedIndex) {
        case 0:
            [self.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_home_bg"]];
            break;
        case 1:
            [self.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_exchange_bg"]];
            break;
        case 2:
            [self.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_account_bg"]];
            break;
        case 3:
            [self.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_setting_bg"]];
            break;
        default:
            break;
    }
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

另外,如果需要改变UITABBAR默认的文字颜色及上边线,

    //去看uitabbar上边线
    [[UITabBar appearance] setShadowImage:[[UIImage alloc]init]];
    //uitabbar 默认文字显示颜色
    [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary
                                                    dictionaryWithObjectsAndKeys: [UIColor whiteColor],NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值