ios 怎么自定义tabbar

ios 怎么自定义tabbar,第1张

系统自带的UITabBarController有时候到不到要求,需要自定义样式。有一种方法就是在TabBar上面在放一层自己的,正好把原来的遮住。那么,从Tab进入子的Controller想要隐藏TabBar怎么办呢?假如说你是用 TabBar + Navigation来做的,从第一个Tab——TabBar1进入子Controller(称作A),逻辑很简单,就是从TabBar1点击进入A, 你需要在TabBar1点击事件(A显示之前)加上self.hidesBottomBarWhenPushed = YES然后在A的viewWillAppear中把你自己自定义,也就是覆盖在系统TabBar上面的东西隐藏;在viewWillDisappear中再将其显示就可以了。示例代码如下:点击事件:TabNoticeController *vc = [[TabNoticeController alloc] init]self.hidesBottomBarWhenPushed = YES[self.navigationController pushViewController:vc animated:YES][vc release]A中的代码:- (void)viewWillAppear:(BOOL)animated {[xxxTabBar setTabBarHidden:YES]}- (void)viewWillDisappear:(BOOL)animated {[xxxTabBar setTabBarHidden:NO]}

要进行具体的 *** 作。

设置一个空白的controller做为根视图。等到数据请求完成之后。根据后台数据设置tabbar。再把第一个tabbar重新设置成根视图。如果后台给的数据没有tabbar。那就把抽屉的第一条数据所对应的controller设置成根视图这时候只有抽屉没有tabbar。至于如何判断tabbar。那需要你和后台约定好字段,根据约定的字段去判断了。

1. 有两件事情你需要做的是: 1)如果你想自定义的TabBar本身,你需要设置barTintColor为tabBarController: // this will generate a black tab bar

tabBarController.tabBar.barTintColor = [UIColor blackColor]

// this will give selected icons and text your apps tint color

tabBarController.tabBar.tintColor = appTintColor// appTintColor is a UIColor *

2)设置tabBarItem文本外观要覆盖每一个状态:[[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:10.0f],

NSForegroundColorAttributeName : appTintColor

} forState:UIControlStateSelected]

// doing this results in an easier to read unselected state then the default iOS 7 one

[[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:10.0f],

NSForegroundColorAttributeName : [UIColor colorWithRed:.5 green:.5 blue:.5 alpha:1]

} forState:UIControlStateNormal]

2. 这个工作要在着色的标签栏不活跃的项目UITabBarItem *item = [self.tabBar.items objectAtIndex:1]

//这里你需要用你想要的颜色的图标,因为它会被渲染,因为它是item.image = [[UIImage imageNamed:@"unselected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]

//这个图标选中的标签,它会得到有色定义见self.tabBar.tintColor

item.selectedImage = [UIImage imageNamed:@"selected.png"]

3. 使用self.tabBarController.tabBar.barStyle = UIBarStyleBlack使标签栏黑色

4. 埃德的答案是完美的,但补充一点。 的TabBar是默认的半透明使用TabBar下受到的观点的颜色(即的ViewController的视图的颜色影响的TabBar外观)。 所以我设置下面的代码不会受到影响。self.tabBarController.tabBar.translucent = false

连同Ed的这里的答案是代码了。self.tabBarController.tabBar.barTintColor = [UIColor blackColor]

self.tabBarController.tabBar.translucent = false

self.tabBarController.tabBar.tintColor = [UIColor blueColor]

5. 你试试吧for (UITabBarItem *item in self.tabBarController.tabBar.items) {

item.image = [[UIImage imageNamed:@"youimage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:

[UIColor whiteColor], UITextAttributeTextColor,

nil] forState:UIControlStateNormal]

item.selectedImage = [UIImage imageNamed:@"youimage.png"]

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11259738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存