zoukankan      html  css  js  c++  java
  • 状态栏高度变化处理

    转载自: http://www.jianshu.com/p/8c8303f7d439

    iOS中的状态栏的正常高度是20,但并不是固定高度的,至少在通话中和有热点连接时,它的高度就会变成40。这时APP的UI会整体下移,造成UI显示异常。

    • 问题1:怎么获取状态栏高度?
      状态栏的高度并非永远都是20,当有热点连接或者通话时,它的高度就会变成40。所以取得状态栏高度的标准方法如下,可以用宏来封装。
      [UIApplication sharedApplication].statusBarFrame.size.height
    • 问题2:怎么知道状态栏发生了变化?
      是通知。

      UIApplicationWillChangeStatusBarFrameNotification
      UIApplicationDidChangeStatusBarFrameNotification

      我们可以监听其中某个通知,然后相应的去改变当前视图的布局。

    • 问题3:是不是需要每个页面都要去注册通知?
      这个问题应该具体问题具体分析,但如果真的需要一个一个页面去改,我觉得肯定是程序结构出了问题。就我目前的项目而言,只是在根容器类中加了通知并处理了底部的tabbar。其他页面虽然有时也有问题,但很多都是自身实现方式有问题,和状态栏变化没有直接关系。

    - (void)statusBarFrameWillChange:(NSNotification*)notification
    {
        [self hideTabbar:self.statusBarHidden animated:YES];
    }



     
  • 相关阅读:
    大二实习使用的技术汇总(下)
    【JSP】JSTL使用core标签总结(不断更新中)
    凸包---HDU 2202
    poj
    [MFC]MFC中OnDraw与OnPaint的区别
    PHP 自动生成导航网址的最佳方法 v20130826
    汉语-词语-调料:百科
    汉语-词语-味觉:百科
    汉语-词语-本源:百科
    un-人物-企业家-迈纳·基思:百科
  • 原文地址:https://www.cnblogs.com/Jenaral/p/5379527.html
Copyright © 2011-2022 走看看