UITabBarController 之 设置选中和未选中的图片 隐藏tabbar

今天用到了关于 UITabBarController,看到设计图中的那些效果和系统默认的不一样 所以赶紧上网找些资料去

发现关于它的自定义不少 可是好用的不是很多 大部分都是一样的 并且我用了之后效果不是很明显

但是经过看别人的 总算是组合出来了点结果

首先是修改背景

{

self.tabBarController = [[UITabBarController alloc] init];

//定义一个view 里面是一个背景图片

UIView *v = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 49)];

v.backgroundColor  = [UIColor clearColor];

UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"new-nav-bg.png"]];

img.frame = CGRectMake(0,0, 320,49);

img.contentMode = UIViewContentModeScaleToFill;

[v addSubview:img];

//这句话是重点 网上都是把数字1 写成了 0  但是我写0 的时候不能显示效果 1就可以

[self.tabBarController.tabBar insertSubview:v atIndex:1];

}

其实直接用一幅图片也行的

{

UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"new-nav-bg.png"]];

img.frame = CGRectMake(0,0, 320,49);

img.contentMode = UIViewContentModeScaleToFill;

[self.tabBarController.tabBar insertSubview:img atIndex:1];

}

这样就完成了 效果如下:

其实每个图片都是黑色的 系统默认会加上一些效果 譬如选中 或者没有被选中的时候 如果使用

[con2.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"tab3.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab2.png"]];

con2是tab2 对应的视图控制器 这样自定义选中和未选中的图片之后就完全自己控制了效果如下 并且图片大小不会改变


这张是不会影响尺寸的

还有就是有时候需要进行对tabar的暂时的隐藏或者显示 如果使用 self.tabBarController.tabBar.hidden = YES; 可能是隐藏了 但是tab bar 的位置并没有被占去 而是显示黑色的一条 最后我找到了一个解决的方法
aboutViewCon.hidesBottomBarWhenPushed = YES;//跳入该页面的时候隐藏掉tabbar
[self.navigationController pushViewController:aboutViewCon animated:NO];
aboutViewCon.hidesBottomBarWhenPushed = NO;//跳进去后该页面的时显示tabbar
这样就完美解决了问题


你可能感兴趣的:(UIView)