iOS状态栏frame计算问题的实现

我们知道除了iPhoneX以外的设备导航栏默认高度都是20,当然苹果也为我们提供了计算状态栏frame的方法:

[[UIApplication sharedApplication] statusBarFrame];

这个方法在正常情况下返回的状态栏高度也是20,但当正在通话时,或者后台有APP正在使用定位功能时,顶部会出现两种提示条:

正在通话.png

后台有APP使用定位.jpeg

当顶部有这两种提示条出现时,上面的statusBarFrame方法返回的状态栏高度就变成了40,在手动更改顶部约束的时候就会出现问题,最后没找到解决方法,只能手动改回20,感觉是有那么点low。

if (iPhoneX) {//x上不做任何改变
    return rectStatus.size.height + rectNav.size.height;
  } else {
    if (rectStatus.size.height == 40) {//顶部有导航或者电话条时,状态栏高度系统方法计算错误,手动置为20
      CGFloat fStatusBarHeight = 20;
      return fStatusBarHeight + rectNav.size.height;
    } else {
      return rectStatus.size.height + rectNav.size.height;
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • IOS上iframe的滚动条失效的解决办法

    问题描述: iframe设置了高度(例如500px).倘若iframe的内容足够长超出了iframe设定的高度时,在ipad等设备上.iframe内部html的滚动条不出现.并且活生生的从500px处截断,(类似overflow:hidden的效果)下面的内容不再显示. 问题重现: 结构: index.html : <style> #iframe{height:500px;} </style> <div id="content"> <ifram

  • iOS10 App适配权限 Push Notifications 字体Frame 遇到的问题

    添加配置权限 <!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>"xx"想使用您的相册,需要您的允许</string> <!-- 相机 --> <key>NSCameraUsageDescription</key> <string>"xx"想使用您的相机,需要您的允许</strin

  • iOS中封装.framework及使用的方法详解

    .framework是什么? 这个问题相信做iOS的都知道答案. 在我们的日常开发中,经常会用到各种已经封装好的库,比如支付宝.微信SDK等等中的库,这些库可以给我们的开发带来很大的便利.有的时候,由于工作的需要,我们需要对自己的项目进行封装,生成库,方便别人的使用.在这里就边参考好点的博客,边总结一下我们经常看到的.framework. 那什么是"库"呢? "库"是共享程序代码的一种方式!同行总结的这句话很简单也很好的说明了它的作用! 一般的分为"静态库

  • IOS 图文混排(CoreText.framework)详解及实例

    IOS 图文混排(CoreText.framework)        本文主要介绍了IOS图文混排的资料,这里整理了在网上查找的内容,帮助理解,掌握这部分知识,以下就是整理的内容: 利用CORETEXT进行图文混排. 实现代码: void RunDelegateDeallocCallback( void* refCon ){ } CGFloat RunDelegateGetAscentCallback( void *refCon ){ NSString *imageName = (NSStri

  • iOS的XMPPFramework简单介绍(实现及时通信)

    XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开发. 1. 登录和好友上下线 1.1XMPP中常用对象们 XMPPStream:xmpp基础服务类 XMPPRoster:好友列表类 XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作类 XMPPvCardCoreDataStorage:好友名片(昵

  • iOS10语音识别框架SpeechFramework应用详解

    摘要: iOS10语音识别框架SpeechFramework应用 一.引言 iOS10系统是一个较有突破性的系统,其在Message,Notification等方面都开放了很多实用性的开发接口.本篇博客将主要探讨iOS10中新引入的SpeechFramework框架.有个这个框架,开发者可以十分容易的为自己的App添加语音识别功能,不需要再依赖于其他第三方的语音识别服务,并且,Apple的Siri应用的强大也证明了Apple的语音服务是足够强大的,不通过第三方,也大大增强了用户的安全性. 二.S

  • iOS中.a和.framework静态库的创建与.bundle资源包的使用详解

    前言 开发中经常使用三方库去实现某特定功能,而这些三方库通常又分为开源库和闭源库.开源库可以直接拿到源码,和自己写的没有什么区别,我们可以最大程度的修改源码来适应自己功能.闭源库就是被发布者提前打包好的静态库或 Bundle 包,对此我们无法看到内部实现,对于其封装好的特定功能,我们也只需要调用其开放的API即可. 在正式的上代码之前,先介绍一些从网上搜集的静态库相关的基本概念,以加深对后面知识的理解 1. 库 库实际上是一种代码共享的方式,主要用于代码重用和源码隐藏,通常分为动态库和静态库.

  • ios 不支持 iframe 的完美解决方法(兼容iOS&安卓)

    最近做微信公众号页面,因为入口不同,需要把公共页面抽取出来,然后根据不同的值,传递给后台不同的入口.刚开始用iframe页面嵌套(第一次尝试使用),但发现iOS系统对iframe嵌套页面的高度和定位控制的不到位,具体表现为,当嵌套的子页面的高度大于父页面的高度,且子页面中有触发弹框事件时,这时,如果子页面高度远远大于父页面高度,就会出现弹框找不到的情况,其实可能是在视口以下,弹框的位置只是相对于子页面来定位,并没有相对于视口定位. 尝试了好多种方法,均不理想,而安卓系统则表现良好,于是想到,iO

  • iOS制作framework静态库图文教程

    本文实例为大家分享了iOS制作framework静态库教程 ,供大家参考,具体内容如下 环境: 硬件:macbook air 系统:OSX EI Capitan 版本:10.11.3 xcode :Version 7.2.1 (7C1002) 最近在做ios的静态库(据说framework动态库不能上传到app store).a 和framework都做过了,这里就先说framework的制作流程: 1.首先在xcode下新建cocoa touch framework工程: 2.新建好工程后,往

  • IOS 静态库和Framework区别

    IOS静态库和Framework区别 一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 二.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存. 三.iOS里静态库形式? .a和.framework 四.iOS里动态库形式? .dylib和.framework 五.framework为什么既是静态库又是动态库? 系统的.framewo

随机推荐