当前位置: 代码迷 >> 综合 >> iOS去掉NavigationBar 底部的黑线
  详细解决方案

iOS去掉NavigationBar 底部的黑线

热度:24   发布时间:2024-01-20 19:25:25.0
先看效果图




这是素材



小弟刚开始直接用navigationBar加载这张背景图

appDelgate里:
 
Objective C code
?
1
2
[[ UINavigationBar  appearance] setBackgroundImage:[ UIImage  imageNamed:@ "ToPointNavBgFull" ]
                                                   forBarMetrics: UIBarMetricsDefault ];
   

然后得到的效果图:





有黑线 而且 下方显示不完整

然后开始考虑是不是Navigation的 barTintColor是白色 , 然后开始设置barTintColor设置成clearColor没有效果 还是一样 奇怪了 ,研究了一番 总结了两种方法
适合IOS7.0以上

1.设置NavigationBar的BackgroundImage和ShadowImage
注意 这种方法要将一张图片分成两段(根据自己的情况)
shadowImage:

BackgroundImage:



appDelegate里:
Objective C code
?
1
2
3
   [[ UINavigationBar  appearance] setBackgroundImage:[ UIImage  imageNamed:@ "ToPointNavBg" ]
                                                   forBarMetrics: UIBarMetricsDefault ];
     [[ UINavigationBar  appearance] setShadowImage:[ UIImage  imageNamed:@ "shadowNav" ]]  ;

效果图:





2.在NavigationBar加上一个ImageView

在viewWillAppear里
Objective C code
?
1
2
3
  UIImageView  *titleView = [[ UIImageView  alloc]initWithImage:[ UIImage  imageNamed:@ "ToPointNavBgFull" ]];
     [ self .navigationController.navigationBar addSubview:titleView];
     [ self .navigationController.navigationBar sendSubviewToBack:titleView];

注意    [self.navigationController.navigationBar sendSubviewToBack:titleView];这一句,这是一个层级的交换的动作,一定要加上这一句,不然会直接覆盖掉title和navigationItem