Men的博客

欢迎光临!

0%

UITabBarController

如何使用标签栏控制器实现多界面的切换

创建多个试图控制器
创建一个标签栏控制器
UITabBarController *tbc=[[UITabBarController alloc]init];
把前面创建的试图控制器放入标签栏控制器中管理
tbc.viewControllers=@[frist,second,thir,fou,fiv,six];
标签栏一般同时最多显示5个界面,如果大于5个,最后一个标签项变成more中,

标签栏上标签项的设置

可以在标签栏上设置文本和图片
注意:标签栏显示该界面的时候从tabBarItem中取出需要的title和Image
fvc.tabBarItem.title=@”Limt”;
fvc.tabBarItem.image=[UIImage imageNamed:@”tabbar_limitfree”];
自己创建标签项。
UITabBarItem *item=[[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:100];
fvc.tabBarItem=item;
可以控制图片拉伸和上下移动
fvc.tabBarItem.imageInsets=UIEdgeInsetsMake(10, 0, 0, 0);
设置徽标。
fvc.tabBarItem.badgeValue=@”10”;

标签栏的设置

设置色调
tab.tabBar.barTintColor=[UIColor yellowColor];
设置背景图
tab.tabBar.backgroundImage=[UIImage imageNamed:@”tabbar_bg”];
设置标签被选中状态颜色
tab.tabBar.selectedImageTintColor=[UIColor purpleColor];

标签栏控制器的 时间处理

想要禁止选择某个标签项
当某个试图被选择的时候执行,返回yes执行,返回no不执行
-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
选择了某个标签项进行处理
当某个试图被选中的时候执行
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

标签栏定制

核心:隐藏系统原来的标签栏,添加上自己定义的View;
创建一个标签栏控制器(TabBarContorller类)
把系统的替换成自己创建的tabBarContorller
1.先隐藏标签栏
self.tabBar.hidden=YES;
2.创建自己的标签栏。tabBar
获得屏幕的大小尺寸
CGSize size=[UIScreen mainScreen].bounds.size;
UIView *tabBar=[[UIView alloc]initWithFrame:CGRectMake(0, size.height-49, size.width, 49)];
tabBar.backgroundColor=[UIColor colorWithRed:1 green:1 blue:1 alpha:0.5];
[self.view addSubview:tabBar];
点击事件中实现切换界面的功能。
int index=button.tag-100;
index表示按钮的序号
selectedIndex表示被选中的序号。
self.selectedIndex=index;
获取被选择界面的序号
NSUserDefaults *ud=[NSUserDefaults standardUserDefaults];
int index=[ud integerForKey:@”selectedIndex”];
tab.selectedIndex=index;

保存被选择界面的序号

NSUserDefaults 系统提供保存数据一种机制(单例)
NSUserDefaults *ud=[NSUserDefaults standardUserDefaults];
[ud setInteger:self.selectedIndex forKey:@”selectedIndex”];
tbc.selectedIndex = index;

隐藏状态栏

先设置plist文件中的
View controller-based=NO;
[UIApplication sharedApplication].statusBarHidden=NO;

设置状态栏文字为白色

只有两种颜色
default是黑色
LightContent为白色。
[UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleLightContent;
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@”header_bg”] forBarMetrics:UIBarMetricsDefault];