2023年7月14日发(作者:)
IOS开发。UITabBarController常⽤和⾃定义我的⽂章套路还是⼀样,先上基础,后上常⽤:abBarController的基本属性:- (void)viewDidLoad { [super viewDidLoad]; //1.创建标签控制器 UITabBarController *tab = [[UITabBarController alloc]init];//2.创建相应的⼦控制器(viewcontroller) FirstViewController *firstVC = [FirstViewController new]; = @"通讯录"; = @"通讯录"; = [UIImage imageNamed:@"12-eye"]; UINavigationController *firstNC = [[UINavigationController alloc]initWithRootViewController:firstVC]; SecondViewController *secondVC = [SecondViewController new]; = @"朋友圈";//设置标签名称 = @"朋友圈";//可以根据需求设置标签的的图标 = [UIImage imageNamed:@"21-skull"]; UINavigationController *secondNC = [[UINavigationController alloc]initWithRootViewController:secondVC]; //3.添加到控制器 //特别注意:管理⼀组的控制器(最多显⽰五个,多余五个的话,包括第五个全部在更多模块⾥⾯,并且可以通过拖拽⽅式进⾏顺序编辑); NSArray *array = @[firstNC,secondNC] ntrollers = array;```我们在实际操作过程中还可以根据taBar的属性,标签栏的颜⾊、风格、⽂字颜⾊等等//设置标签栏⽂字和图⽚的颜⾊lor = [UIColor orangeColor];//设置标签栏的颜⾊tColor = [UIColor blackColor];//设置标签栏风格(默认⾼度49)le = UIBarStyleBlack;//设置初始状态选中的下标edIndex = 3;以上是基本的⼀些属性和操作。但是在实际开发中我们使⽤⾃定义tabbar还是⽐较多的,所以补充⼀下⾃定义tabbar。后⾯会上传代码####封装⾃定义UITabBarController,解决代码结构清晰问题* 1 添加⾃定义UITabBarController的⼦控制器。在initWithNibName⾥添加,原因:⼦控制器只需要添加⼀次,并且控制器不需要懒加载,视图才需要,在⼀创建的时候就拥有⼦控制器。 写代码最好⼀个功能⼀个⽅法,是代码结构清晰,⽅便以后维护,不要所有代码写在⼀起。* 2 设置⾃定义UITabBarController的tabBar上⾯的按钮内容,由对应⼦控制器的tabBarItem决定。* 3 重构初始化⾃定义UITabBarController的⼦控制器的代码####tabBar上按钮图⽚处理* 1> 处理tabBar上按钮的选中图⽚, ios7默认会把tabBar上按钮的选中图⽚,渲染成蓝⾊。告诉图⽚保持最原始的图⽚,不要渲染。* 2> 定义当前版本号的全局宏,在ios7才需要保持最原始的图⽚。我封装了⼀个分类:import "UIImage+LWImage.h"@implementation UIImage (LWImage)+(instancetype)imageWithOriginalName:(NSString *)imageName{UIImage *image = [UIImage imageNamed:imageName];return [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];}@end---####设置TabBar上按钮选中⽂字颜⾊。* 1> tabBar上的按钮由tabBarItem决定,可以通过tabBarItem设置⽂字颜⾊,有相应的set⽅法,传⼊⼀个⽂字属性字典设置。• tabBar的label⽂字的颜⾊,在iOS7以上默认是⿊⾊,选中是蓝⾊。• 我要的效果:label的⽂字颜⾊,默认为⿊⾊,选中为红⾊.* 2> 只需要设置⼀次,可以拿到项⽬中的所有tabBarItem设置,在Initial设置,并不需要每次都拿到⼀个tabBarItem设置。---####调整TabBar上按钮的位置。* 1> ⾃定义TabBar,继承TabBar• 原因:系统⾃带的不好使,⼀个控制器对应⼀个tabBarButton,微博下边有5个按钮,需要弄个⾃⼰的tabBar。* 2> 如何利⽤系统⾃带的tabBar上的按钮,就不需要⾃⼰创建tabBarButton?• 解决⽅式:覆盖tabBar控制器⾃带的tabBar为⾃⼰的tabBar* 3> ⽬的:覆盖tabBar控制器⾃带的tabBar属性为⾃⼰的tabBar,让系统把tabBar上的按钮添加到我们的tabBar上,调整系统⾃带tabBarButton的位置。* 4> 好处:利⽤系统⾃带的tabBarButton,如果只是把⾃定义TabBar加上系统的tabBar上,就拿不到系统⾃带的tabBarButton,去设置他的位置,必必须⾃⼰⾃定义tabBar上的按钮,很⿇• 解决⽅式:覆盖tabBar控制器⾃带的tabBar为⾃⼰的tabBar* 5> 原理:tabBar上的按钮是在viewDidAppear的时候拿到 调⽤addSubViews添加上去的,在viewDidAppear之前把控制器的tabBar换成我们⾃⼰的tabBar,就会把tabBa* 6> 如何覆盖系统⾃带的tabBar?tabBar控制器的tabBar属性,是readly只读的,不能直接赋值。利⽤运⾏时机制发送消息:导⼊import
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689265313a226461.html
评论列表(0条)