美文网首页
状态栏消失的问题

状态栏消失的问题

作者: chulijun | 来源:发表于2018-05-18 17:43 被阅读16次

webView加载h5网页视频,横屏后导致状态栏消失的问题。

问题说明:项目是不支持横屏的,但是接入的流量新闻是一个web 网页,网页中包含各种类型的广告,纯文本的,富文本的,视频类的。
在视频类的web界面中包含的有视频的横竖屏切换按钮(按钮在网页中),播放视频时,如果是竖屏状态下,点击视频关闭按钮,返回时,状态栏正常。如果在横屏状态下,点击视频关闭按钮的话,返回之后导航条上移20px,下方回留白20px。解决方法如下:

第一步:在自定义的BaseUINavViewController 中 添加如下代码:

- (void)viewDidLoad {
  [super viewDidLoad];
  //设置整个项目的item状态
  UIBarButtonItem *item = [UIBarButtonItem appearance];
  //设置item普通状态
  NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
  attrs[NSFontAttributeName] = [UIFont systemFontOfSize:16];
  attrs[NSForegroundColorAttributeName] =YTColor(@"#030303");
  [item setTitleTextAttributes:attrs forState:UIControlStateNormal];
  self.navigationBar.barTintColor = [UIColer blueColer];
// 检测屏幕旋转的变化
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
}

- (void)didRotate{
//改变导航栏位置
if(!UIDeviceOrientationIsPortrait(UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]))) {
      self.navigationBar.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 64);
  }else{
      self.navigationBar.frame =CGRectMake(0, 20,  [UIScreen mainScreen].bounds.size.width, 44);
  }
  [[UIApplication sharedApplication]setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];//启动图遮盖状态栏,显示出状态栏
  [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; //状态栏字体设置 白色
  self.navigationController.navigationBar.barTintColor = YTBgTopColor;
}

第二步:在加载视频对应的controller 中添加如下代码,⚠️这里需要添加一个蓝色的图片

- (void)viewDidLoad {
    [super viewDidLoad];
    /*
     方法1:添加View,为VIew设置颜色,但是失败
     方法2:添加View,为UIImageView添加蓝色图片解决问题。
     是白发
     */
    UIView *statusBarView = [[UIView alloc]   initWithFrame:CGRectMake(0, -20,    self.view.bounds.size.width, 20)];
    //    statusBarView.backgroundColor = [UIColor blueColor];这里是管用的,但是找不到相同色系
    //    imageView.backgroundColor = [UIColor colorWithRed:59.0 green:165.0 blue:221.0 alpha:1];配置成相同的颜色了,但是又不能显示颜色了,原因未知。
    UIImageView *imageView = [[UIImageView alloc]initWithFrame:statusBarView.bounds];
    imageView.image = [UIImage imageNamed:@"blue"];
    [statusBarView addSubview:imageView];
    [self.navigationController.navigationBar addSubview:statusBarView];
    self.automaticallyAdjustsScrollViewInsets =NO;
}

第三步,需要在info.plist 中添加配置

<!-- 设置状态栏 start -->
    <key>UIStatusBarHidden</key>
    <false/>
    <key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
    </array>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
    <!-- 设置状态栏 end -->

后记:这是实验出来的结果,可能不是最优的方案,但是目前没有找到其他的方案,希望谁遇见相同问题的,并且知道更好的解决办法者,留言交流。非常感谢!

相关文章

  • 状态栏消失的问题

    webView加载h5网页视频,横屏后导致状态栏消失的问题。 第一步:在自定义的BaseUINavViewCont...

  • 【问题收集】app 状态栏消失问题

    出现场景: 在登录的实现中,我们需要获取验证码,和根控制器的切换,在获取验证码成功或失败给予提示,输入验证码登录成...

  • picgrid

    加广告,4.4状态栏消失,fitsystem = true

  • 虚拟机中安装Ubuntu16.04使用注意事项

    一、虚拟机菜单栏消失如何重新打开 问题:虚拟机菜单栏和状态栏消失,使用截图和录屏时不方便。解决方法:在“设置”中的...

  • 2018-04-09

    原文:IOS状态栏和导航栏的控制问题 IOS的项目多数会遇到控制状态栏和导航栏的问题,比如隐藏状态栏、控制状态栏的...

  • iOS - 界面偏移、状态栏导航栏显示隐藏

    状态栏颜色设置 偏移问题 隐藏状态栏 隐藏导航栏

  • iOS 开发遇到的那些事1

    一. 状态栏 1.黑暗模式切换状态栏的电量栏颜色无法切换问题 2. 特殊情况状态栏背景色无法修改问题 二. UI...

  • 第四天(03.22)

    解决遗留问题 解决app状态栏问题

  • iOS 11 问题

    iOS 11 状态栏问题 iOS 11 tittleView问题

  • 代码记录

    通用记录 状态栏 状态栏留白问题 导航栏 导航栏遮挡问题 UIScrollView 加载xib文件 返回到指定的V...

网友评论

      本文标题:状态栏消失的问题

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