UITabbar及UINavigationBar上的黑线去除

作者: 仁伯 | 来源:发表于2016-05-22 23:32 被阅读2543次

在tips发表后,有网友回复直接一句代码去除黑线,过去还真没试过,受教:

[UITabBar appearance].clipsToBounds = YES;
[UINavigationBar appearance].clipsToBounds = YES;

上面的方法固然漂亮,但对于有些特殊要求的,比如:TabBar中间凸起、以及类似简书的导航栏头像缩放伸缩等,就不适用了:GitHub下载地址

效果图

去除tabbar上的黑线一般做法是在tabbar上覆盖覆盖一张背景图片,具体代码,在自定义Tabbar里的didload方法里添加,如下代码

- (void)viewDidLoad
{
  [super viewDidLoad];

  //设置tabbar背景颜色
  [[UITabBar appearance] setBackgroundColor:[UIColor whiteColor]];
  [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
  [[UITabBar appearance] setTintColor:ButtonColor];
  [[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"tabbarImage.png"]];
  // [UITabBar appearance].clipsToBounds = YES; // 添加的图片大小不匹配的话,加上此句,屏蔽掉tabbar多余部分 
  [[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"tabbarImage.png"]];
    }

导航NavigationBar的黑线条,去除相对容易,如果需要全局的,只需,在AppDelegate的didFinishLaunchingWithOptions方法中添加两行代码:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    {
      [[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
      [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
     return YES;
    }

相关文章

网友评论

  • 贫克慢:大神,再一次受指教了,上一次是你的iOS11适配的简书里面指导了我适配iOS11下搜索框居左的问题,十分感激
    仁伯:不敢称大神,不过很开心,谢谢
  • devRen:GitHub上的项目貌似没有UITabBar,
    仁伯:@Jie_iOS 没啥特别要求,和tabbar的背景色一致就可以。
    devRen:还有UITabBar填上去的图片有什么要求
  • RiversMa:[UITabBar appearance].clipsToBounds = YES;
    [UINavigationBar appearance].clipsToBounds = YES;
    以上两句话就可以去除导航栏和标签栏上的黑线,为什么要写那么多呢?
    黄卷青灯空离别:对于 那些 会突出的tabbar 你这样就裁剪掉了 显示不出来了
    RiversMa:@仁伯安 :blush: 哈哈,楼主加油!
    仁伯:@RiversMa 受教,我完善下,谢谢
  • 拥抱月亮的大星星:tabbar上的黑线应该就是ShadowImage吧,和导航条一样的原理吧
    仁伯:对的,点立体图可以看出来那根线是UIImageView

本文标题:UITabbar及UINavigationBar上的黑线去除

本文链接:https://www.haomeiwen.com/subject/jtharttx.html