首页 > 移动平台 > 详细

关于iOS7-8的系统UITabBarController

时间:2015-07-30 21:10:52      阅读:469      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!