怎么swift 设置tabbaritemm选中时,item整个一个小块都有背景颜色

一、对UITabBar背景和icon图标的一些设置
(1)因为直接给UITabBar设置的背景颜色显示的不纯,半透明的感觉,所以,有时候我们可以直接利用纯色的图片作为背景达到想要的效果;
(2)给icon图片改变颜色也是重要的实用方法之一,默认的时蓝色。
在AppDelegate.m文件中:(1个导航控制器和5个视图控制器)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//创建5个视图控制器和1个导航控制器
ViewController1 *vc1=[[ViewController1 alloc]init];
UINavigationController *nav1=[[UINavigationController alloc]initWithRootViewController:vc1];
ViewController2 *vc2=[[ViewController2 alloc]init];
ViewController3 *vc3=[[ViewController3 alloc]init];
ViewController4 *vc4=[[ViewController4 alloc]init];
ViewController5 *vc5=[[ViewController5 alloc]init];
ViewController *vc6=[[ViewController alloc]init];
nav1.title=@&界面1&;
vc2.title=@&界面2&;
vc3.title=@&界面3&;
vc4.title=@&界面4&;
vc5.title=@&界面5&;
vc6.title=@&界面6&;
//6个系统icon图标
[nav1.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemTopRated tag:1];
[vc2.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemSearch tag:2];
[vc3.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemContacts tag:3];
[vc4.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemMostViewed tag:4];
[vc5.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemMostRecent tag:5];
[vc6.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:6];
//创建一个视图控制器数组,并把它赋值给标签栏控制器的viewControllers值
NSArray *arr1=[[NSArray alloc]initWithObjects:nav1,vc2,vc3,vc4,vc5,vc6, nil];
UITabBarController *tbCon1=[[UITabBarController alloc]init];
tbCon1.viewControllers=arr1;
//标签栏控制器有个tabBar属性,这个属性有两个items和selectedItem属性是不能用的,因为这两个属性是归标签栏控制器直接管理,其他人不能对其赋值
//运行以下两行代码,程序会崩溃
//tbCon1.tabBar.items=[[NSArray alloc]initWithObjects:vc1.tabBarItem, nil];
//tbCon1.tabBar.selectedItem=vc1.tabBarI
//通过backgroundColor可以设置标签栏颜色,但是是一层淡淡的红色
tbCon1.tabBar.backgroundColor=[UIColor redColor];
//可以通过设置背景图片的方式给标签栏设置背景颜色,比如红色的背景图片,要求图片大小要正好
//用以下方式获得标签栏宽高后,创建一个背景图片,再引入进来
NSLog(@&%i,%i&,(int)tbCon1.tabBar.frame.size.height,(int)tbCon1.tabBar.frame.size.width);
tbCon1.tabBar.backgroundImage=[UIImage imageNamed:@&tabBarbg.png&];
//通过tintColor可以给icon图标设置颜色
tbCon1.tabBar.tintColor=[UIColor redColor];
//设置被选中标签的背景图片,宽度是375/5=77
tbCon1.tabBar.selectionIndicatorImage=[UIImage imageNamed:@&selectionDic.png&];
//把这个标签栏控制器当做window的根视图控制器来显示
self.window.rootViewController=tbCon1;
// Override point for customization after application launch.
return YES;
二、隐藏UITabBar的第一种方式
这一种方式需要用导航控制器视图来做实验,因为我们需要用hidesBottomBarWhenPushed属性,这个属性的意思是,当这个视图被压到栈中时(导航控制器的栈),隐藏底部的bar,包括UITabBar。
所以我们以上面的nav1做实验,nav1的根视图控制器是vc1,我们在vc1中增加一个按钮,一点击就到ViewController7.m中(实例是vc7),并隐藏UITabBar。
#import &ViewController1.h&
#import &ViewController7.h&
@interface ViewController1 ()
@implementation ViewController1
- (void)viewDidLoad {
UIButton *btn1=[UIButton buttonWithType:UIButtonTypeRoundedRect];
btn1.frame=CGRectMake(38, 80, 300, 30);
btn1.backgroundColor=[UIColor whiteColor];
[btn1 setTitle:@&PUSH& forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(jumpTo) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn1];
[super viewDidLoad];
// Do any additional setup after loading the view.
-(void)jumpTo{
ViewController7 *vc7=[[ViewController7 alloc]init];
[self.navigationController pushViewController:vc7 animated:NO];
在ViewController7.m中:
#import &ViewController7.h&
@interface ViewController7 ()
@implementation ViewController7
//增加一个initWithNibName方法,标配是return self。此外还需要在初始化时就设置它的hidesBottomBarWhenPushed属性为YES才能生效
//即,在视图控制器的实例被加载到栈之前,就需要设置这个属性,否则无效
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
self.hidesBottomBarWhenPushed=YES;
三、隐藏UITabBar的第二种方式
就是把UITabBar的位置移动,即调整frame.origin.y的值。消失就是把它移出屏幕,出现就是把它再放回原地。(但,还原时又卡顿现象,体验很差,不建议)
所以,在ViewController7.m中:
//增加一个试图即将出现时的方法,并在此设置把tabBar下移,移除整个屏幕,相当于消失了
-(void)viewDidAppear:(BOOL)animated{
NSArray *arr1=self.tabBarController.view.
UIView *view1=[arr1 objectAtIndex:0];
UITabBar *tabBarView1=[arr1 objectAtIndex:1];
//第一个视图就是全屏,不需要把高度撑满,所以可以不做任何设置
//view1.frame=CGRectMake(0, 0, 375, 667);
tabBarView1.frame=CGRectMake(0, 667, 375, 49);
在ViewController1.m中:
//增加一个viewDidAppear,把下移的tabBar再上移,相当于还原到原地
-(void)viewDidAppear:(BOOL)animated{
NSArray *arr2=self.tabBarController.view.
UITabBar *tabBarView2=[arr2 objectAtIndex:1];
tabBarView2.frame=CGRectMake(0, 618, 375, 49);
其实还有一种隐藏方式,但是极具杀伤力,一隐全隐了,就是从根源上设置这个标签控制器不显示UITabBar。就是下面的第二行代码:
UITabBarController *tbCon1=[[UITabBarController alloc]init];
tbCon1.tabBar.hidden=YES;
本文已收录于以下专栏:
相关文章推荐
对于UITabBar设置背景颜色很简单,backbackgroundColor不要使用,即使设置了也不起作用,应该使用barTintColor设置背景.
那么图标和文字的默认颜色怎么设置呢,也...
默认的UITabBarController的tabBar背景色是黑色的。有时我们的应用需要变更背景色,或用指定图片做为背景图。
如下有两处实现方法, 这两种方法均需要先实例UITabBarContr...
在做标签栏时,美工会给出两套图。一种是正常状态的,一种是选中状态的。但是当我们设置图片时tabBarItem.selectedImage = [UIImage imageNamed:[NSString...
分享乃程序员的品质所在!!!
p.p1 {margin: 0.0px 0.0px 0.0px 0.0 font: 11.0px Menlo}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0 fo...
在做iphone app时需要自定义UITabBarController的背景图片或颜色,经过多次偿试总结出如下两种方法方法一:CGRect frame = CGRectMake(0, 0, 320,...
UITabBarController、TabBar背景颜色设置、TabBarItem颜色处理
字数829 阅读10537 评论17 喜欢35
在iOS的开发过程中我们使用最多的框架结构...
最近有个需求,就是修改tabbar的选中图片为美术提供的图片,要实现的选中的样子是这样的:,不选中的样子是这样的:
storyboard中 tabbaritem的属性...
现在很多应用都使用到了tabBar,我们往往在给tabBar设置图片和字体的时候,当选中状态下,往往字体的颜色和图片的颜色不匹配,有时候就显得无从下手,我也常常忘了,所有写这个博客的目的,相当于给自己...
给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。
最基本的算法是,从小到大遍历:
for (i = 2 to A -1)
if (i * B > A)...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3c0ab3-ua98).
重新安装浏览器,或使用别的浏览器3586人阅读
Swift Develop(3)
tabBarItem系统默认为蓝色,这里提供一个方法,能够将颜色修改为自己希望的
1)为自己的Tab Bar Controller添加一个控制器 XXTabBarController,关联起来(我使用的StoryBoard做的页面)
2)设置选中色:
在XXTabBarController中,viewDidLoad() 方法下写上
self.tabBar.translucent = false &//避免受默认的半透明色影响,关闭
self.tabBar.tintColor = UIColor.yellowColor() //设置选中颜色,这里使用黄色
//self.tabBar.tintColor =UIColor(red:
0/255, green:188/255, blue:212/255,
alpha:1) //也可以自定义颜色
3)设置背景色:
&self.tabBar.barTintColor = 你想要的背景色
关于选中图片的改变,即实现微信、网易那样的自定义选中图标,
在另外一篇文章&
参考实现自定义TabBarController样式
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11520次
排名:千里之外
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'在iOS的开发过程中我们使用最多的框架结构估计就是UITabBarController + UINavigationController架构了,然而在开发过程中,对于许多初学者,甚至对于许多有半年多开发经验的iOS dev来说还是会有很多很棘手的问题,比如设置tabBar的背景颜色、tabBarItem的图标选中时的颜色为蓝色、tabBarItem选中的背景色的设置... 完整项目点。
下面创建项目并搭建UITabBarController + UINavigationController架构,最终的架构如图:
为每个nav的item添加文字、图片和selectedImage。然后运行可以看到如下图:
现在我们来改变tabBar的背景颜色
设置tabBar的背景色
创建类ANTabBarController继承自UITabBarController,并与storyBoard中的TabBarController关联。在viewDidLoad中添加如下代码:[[UITabBar appearance] setBackgroundColor:[UIColor redColor]];,运行结果如图:
但这个红色并不是真正的红色,而是系统处理过的红色,修改首页界面颜色为红色来做个对比:
所以直接通过[[UITabBar appearance] setBackgroundColor:[UIColor redColor]];来改变tabar的颜色是不能得到想要的颜色的。如果想要得到想要的颜色需要再另外添加一句:[UITabBar appearance].translucent = NO;这句表示取消tabBar的透明效果。
第二种方法是你可以在tabBar上添加一个有颜色的View:
这样也可以实现相同的效果
还有第三种方法就是使用背景图片:
[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@&tabBarBackgroundImage&]];
[UITabBar appearance].translucent = NO;
但同样需要[UITabBar appearance].translucent = NO;
接下来需要处理的第二个问题就是:tabBarItem
设置tabBarItem
首先很多运用中需要在点击某个item后,需要改变背景色,可以通过tabBar的selectionIndicatorImage属性来实现。
第一种方式就是让美工切出符合的图直接放上去,但这种方式美工需要切多个不同尺寸的图,不方便,如果背景色改变,全部图又要重新切,很麻烦。
第二种方式就是自己画,画好后,如果背景色需要改变只需要修改颜色就可以了,不用切图代码实现:
现在选中颜色已经改变了,如图:
好了,tabBarItem的选中时的背景颜色已经弄好了。解决下一个问题
tabBarItem图标文字颜色修改
应该发现了tabBarItem的图标和文字的默认颜色是灰色,选中颜色是蓝色。这是系统默认给图标、文字修改成了灰色和蓝色。如果要改变选中item的颜色可以直接使用tabBar的tintColor来实现,但是如果图标换成别的颜色了又要重新修改tintColor,很不方便。所以重写一个继承与UITabBarItem的自定义类,在initWithCoder:方法中实现如下代码:
mostColorWithImage:方法是自定义的获取图片主颜色的方法,具体代码:
这样就完成了。
转载自:/p/cf9db8bc057c
本文已收录于以下专栏:
相关文章推荐
self.tabBar.tintColor = [UIColor colorWithHexString:BLUE_GREEN_COLOR];
UITabBarController *...
微信小程序开发中选项卡.在android中选项卡一般用fragment,到了小程序这里瞬间懵逼了.
总算做出来了.分享出来看看.
1.index.wxml
我项目的主页常见的是UITabbarController + UINavigationController形式
下午7.54.45.png
因为导航栏是自定...
很多手机的App的底部都需要用到TabBar, 对于初学者来说, TabBar上的各种颜色的设置是很恼火的一个问题,这个本人也深有体会,经过一段时间的使用,我总结了一个比较笨但是非常实用的办法(简单粗...
UITabBarController、TabBar背景颜色设置、TabBarItem颜色处理
字数829 阅读10537 评论17 喜欢35
在iOS的开发过程中我们使用最多的框架结构...
在application: application didFinishLaunchingWithOptions: launchOptions 加入下面代码就可以实现对tabbar的颜色的修改
我们知道。在IOS8中,对于UITabbarController的方法,有些已经不能用了,下面把最新的方法介绍如下:
用下面的代码,可以对tabbaritem进行图片设定,即没有点击和点击之后的...
UIView *backView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size....
在iOS的开发过程中我们使用最多的框架结构估计就是UITabBarController + UINavigationController架构了,然而在开发过程中,对于许多初学者,甚至对于许多有半年多开...
创建以一个类继承UITabBarController
- (void)viewDidLoad {
viewDidLoad];
//当tabBar图...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)iOS开发--一些UITabBarItem属性的设置 - 简书
iOS开发--一些UITabBarItem属性的设置
1.改变UITabBarItem 字体颜色[[UITabBarItemappearance]setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColorwhiteColor],UITextAttributeTextColor,nil]forState:UIControlStateNormal];[[UITabBarItemappearance]setTitleTextAttributes:[NSDictionarydictionaryWithObjectsAndKeys:[UIColorcolorWithHexString:"#00C8D3"],UITextAttributeTextColor,nil]forState:UIControlStateSelected];
设置tabbarItem选中的颜色为红色
2.改变UITabBarItem 字体颜色和大小[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"Helvetica" size:12.0f],NSFontAttributeName,nil] forState:UIControlStateNormal];[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"Helvetica" size:12.0f],NSFontAttributeName,nil] forState:UIControlStateSelected];
设置UITabBarItem 字体颜色和大小
这里需要注意的是在设置字体的时候要选择支持中文的字体,不然的话修改字号是无效的,比如字体设置成“ProximaNova-Semibold”,这种字体本身只支持英语的,不支持中文所以使用该字体并不能调整字体大小3.改变UITabBarItem的选中和非选中图片UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:[[ServiceProviderViewController alloc] init]];nav1.tabBarItem.image = [ImageNamed(@"tabicon1_unselect") imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];nav1.tabBarItem.selectedImage = [ImageNamed(@"tabicon1_select") imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];nav1.tabBarItem.title = @"服务商";
改变UITabBarItem的选中和非选中图片
4.改变UITabBarController的颜色UIView*mView=[[UIViewalloc]initWithFrame:CGRectMake(0,0,320,48)];//这是整个tabbar的颜色[mViewsetBackgroundColor:[UIColorcolorWithPatternImage:[UIImageimageNamed:@"tabbar.png"]]];[tab.tabBarinsertSubview:mViewatIndex:1];mView.alpha=0.8;
设置UITabBar的颜色
5.如何隐藏系统自带的tabbar有时候有的页面并不需要显示tabbar,但是返回的时候要显示tabbar,举个例子A-&B 当A push到 B 时需要设置self.navigationController.hidesBottomBarWhenPushed= YES;
A页面的设置
同时在B页面要- (void)viewWillAppear:(BOOL)animated{[superviewWillAppear:animated];self.tabBarController.tabBar.hidden=YES;}- (void)viewWillDisappear:(BOOL)animated{[superviewWillDisappear:animated];self.tabBarController.tabBar.hidden=NO;}
设置进到页面时隐藏,退出页面时不隐藏
iOS工程师、前端工程师

我要回帖

更多关于 ios tabbaritem 的文章

 

随机推荐