IOS 控件使用介绍

IOS UITabBarController

2017-08-19  本文已影响11人  小暖风

UITabBarController 标签/分栏控制器

//UITabBarController (标签栏控制器,父类为UIViewController,能够管理多个视图控制器,是一个软件架构级的组件)

//tabBarItem.image image的最佳尺寸(30*30/视网膜屏60*60),图片过大,会显示成矩形的黑块,不会显示实际图片

//tabBarItem为视图控制器的属性,为UITabBarItem的对象,显示在底部的标签栏上,通过tabBarItem可以定制图片和标题的显示

//对视图控制器的title属性赋值,相当于对视图控制器的navigationItem.title 和tabBarItem.title同时赋值

//设置tabBarItem处于选中状态和非选中状态下的图片

[nav2.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"tab_s.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab_1.png"]];

//设置tabBarItem的徽标

vc4.tabBarItem.badgeValue = @"4";

//自己创建一个tabBarItem,利用系统样式创建一个对象,tag值,标记tabBarItem,几乎不会去使用

//利用系统样式创建的tabBarItem,后续再更改image,title 无效果

//了解 通过初始化标题和图片的方法得到tarBarItem对象,效果与直接对tabBarItem.title/tabBarItem.image赋值是一样的

//标签栏控制器的viewControllers是一个数组,里面存有各个视图控制器的对象

//各个视图控制器在标签栏控制器上的显示顺序(左->右)与在数组中的顺序一致

//UITabBarController管理视图控制器:各个视图控制器在标签栏控制器中是并列的关系,理论上各个视图控制器彼此相互独立,互不影响

tabController.viewControllers = controllers;

//当添加到标签栏控制器上的对象多于5个的时候,标签栏控制器会自动创建一个moreTabBarItem,同时也会创建一个moreNavigationController ,第5个和5以后的tabBarItem会以列表的形式展示在more中

//tabController.moreNavigationController

//moreNavigationController 不会放在viewControllers数组中,标签栏控制器单独管理它

//将标签栏控制器赋给window

//通过下标的方式,设置被选中的item 下标从0开始

//tabController.selectedIndex = 1;

//通过指定视图控制器,设置被选中的item

//tabController.selectedViewController = [controllers objectAtIndex:1];

//viewController为被选中的tabBarItem所对应的视图控制器

//让self 0.3秒之后执行showTabBar方法

//self performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>

[self performSelector:@selector(showTabBar) withObject:nil afterDelay:0.1];

//UITabBar 标签栏,父类为UIView

//标签栏控制器带有一个标签栏,所有视图控制器共用一个标签栏

//当视图控制器,或者视图控制器的父控制器,添加到标签栏控制器上,可以通过tabBarController属性,取到标签栏控制器

//self.tabBarController.tabBar,tabBar尺寸固定(320*49)

//属性hidesBottomBarWhenPushedYES时,当视图控制器被加到栈中时,隐藏底部的标签栏

//vc7.hidesBottomBarWhenPushed = YES;//此属性写在vc7push之前,因为push的时候,会检测此属性值,根据属性值的进行后续的处理

//当应用程序的活跃内存开辟达到操作系统承受的阖值时,操作系统会给应用程序发送内存告急的信号,应用程序会调用所有已经存在的视图控制器的didReceiveMemoryWarning 方法

//拿到标签栏控制器view的所有子视图

NSArray *subViews =self.tabBarController.view.subviews;

//设置缓冲动画,将要延迟执行的代码片段放到block中

[UIView animateWithDuration:0.2

animations:^{

//根据点击的btn,改变label的横坐标

CGRect frame = indicatorLabel.frame;

frame.origin.x = space + btn.tag *(space +30);

indicatorLabel.frame = frame;

}];

上一篇下一篇

猜你喜欢

热点阅读