iOS技能热门ios开发

去除导航条下方的横线

2016-04-28  本文已影响611人  Tang_shuya
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;
 }
上一篇下一篇

猜你喜欢

热点阅读