去除导航条下方的横线

iOS开发大部分情况下会使用到导航栏,由于我司的app导航栏需要与下面紧挨着的窗口颜色一致,导航栏底部的横线就会影响这个美观。
 去除方法之一:(推荐)
 UIImageView *backgroundView = [self.navigationController.navigationBar valueForKey:@"_backgroundView"];
 for(UIView *view in backgroundView.subviews) {
 if(view.bounds.size.height <= 1.0f) {
  [view removeFromSuperview];
 }
 }

去除方法之二(不推荐,太复杂)。
1)声明UIImageView变量,存储底部横线  
@interface MyViewController {

UIImageView *navBarHairlineImageView;

 }
  2)在viewDidLoad中加入:
  navBarHairlineImageView = [self findHairlineImageViewUnder:self.navigationController.navigationBar];
  3)实现找出底部横线的函数
 - (UIImageView *)findHairlineImageViewUnder:(UIView *)view {
 if ([view isKindOfClass:UIImageView.class] && view.bounds.size.height <= 1.0) {
  return (UIImageView *)view;
 }
for (UIView *subview in view.subviews) {

 UIImageView *imageView = [self findHairlineImageViewUnder:subview];
  if (imageView) {
  return imageView;
 }
 }
  return nil;
 }
4)最后在viewWillAppear,viewWillDisappear中处理
- (void)viewWillAppear:(BOOL)animated {
 [super viewWillAppear:animated];
  navBarHairlineImageView.hidden = YES;
 }

- (void)viewWillDisappear:(BOOL)animated {
 [super viewWillDisappear:animated];
 navBarHairlineImageView.hidden = NO;
 }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,301评论 4 61
  • 转自 我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是在页面加载完成后给元素绑定了事件,但又新增加的元...
    leonardni阅读 1,559评论 0 1
  • 武志红老师的为何爱会伤人今天早上读完了。发现了很多以前一点都没有察觉但是又给别人造成伤害的问题。
    edenvicky阅读 235评论 0 0
  • 我在水底看山, 在林中听泉, 在无味的每一秒, 莫名想你。
    岸上秋风阅读 244评论 0 0