码迷,mamicode.com
首页 > 移动开发 > 详细

关于iOS7-8的系统UITabBarController

时间:2015-07-30 21:13:16      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

眼看iOS9就要出了。最近做项目用的系统的UITabBarController,就mark一下遇到的问题。

系统默认的UITabBarController使用storyboard可以进行设置。

下面主要是讲代码设置tabbar的图片与颜色。

1.tabbar的背景颜色或背景图(如图灰色效果)

技术分享

    tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"tabbar_unselected"];

这个图片可以是一张宽度为2像素,高98的一个细线图。

2.设置选中item的背景颜色或背景图(如图,蓝色效果)

技术分享

    UIImage* selectedImage = [UIImage imageNamed:@"tabbar_select"];
    selectedImage = [selectedImage resizableImageWithCapInsets:UIEdgeInsetsZero];
    tabBarController.tabBar.selectionIndicatorImage = selectedImage;

这里的图片也可以跟上面的背景图片一样,可以是一张宽度为2像素,高98的一个细线图。

selectedImage = [selectedImage resizableImageWithCapInsets:UIEdgeInsetsZero];

是为了用细线图填充要设置的image

3.设置图片颜色与字体颜色及字号

    NSMutableDictionary *textAttrs=[NSMutableDictionary dictionary];
    textAttrs[NSForegroundColorAttributeName]=[UIColor whiteColor];
    textAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:12.f];

    MLNavigationController * oneController = [[MLNavigationController alloc] initWithRootViewController:VC1];
    oneController.tabBarItem.title = @"首页";
    oneController.tabBarItem.image = [[UIImage imageNamed:@"tabbar_home"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    oneController.tabBarItem.selectedImage = [[UIImage imageNamed:@"tabbar_home"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [oneController.tabBarItem setTitleTextAttributes:textAttrs forState:UIControlStateNormal];

我的需求是设置图片与颜色在选中与未选中状态下都为白色。

3.1字体颜色设置

字典textAttrs的key值可以双击去查看你要设置的选项来设置,这里注意一点

- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

这个方法state只能设置UIControlStateNormal,UIControlStateSelected,UIControlStateDisabled三个type

3.2图片颜色设置

图片你会发现用了一个image的方法

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode NS_AVAILABLE_IOS(7_0);

这个方法是告诉系统取消渲染,使用原本的图片颜色。

这样你就可以用你提供的selectedImage与image进行设置了。

oneController.tabBarItem.image = [[UIImage imageNamed:@"tabbar_home"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
oneController.tabBarItem.selectedImage = [[UIImage imageNamed:@"tabbar_home"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
 

关于iOS7-8的系统UITabBarController

标签:

原文地址:http://www.cnblogs.com/LoveJiaQi/p/4690344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!