一、如何知道手机是全面屏手机?

网上有好多人使用获取手机型号的方式来判断,本人觉得这种方式没有问题,只是作为一名开发者,大家都知道苹果每年都会更新新的机型。大家肯定不希望在每次苹果发布新机型后去更新版本,目前我有两种判断方式:

1.获取状态栏的高度,全面屏手机的状态栏高度为44pt,非全面屏手机的状态栏高度为20pt

let statusBarHeight = UIApplication.shared.statusBarFrame.height;
print(statusBarHeight);

在公共的文件中定义以下常量即可使用:

//状态栏高度
let statusBarHeight = UIApplication.shared.statusBarFrame.height;
//导航栏高度
let navigationHeight = (statusBarHeight + 44)
//tabbar高度
let tabBarHeight = (statusBarHeight == 44 ? 83 : 49)
//顶部的安全距离
let topSafeAreaHeight = (statusBarHeight - 20)
//底部的安全距离
let bottomSafeAreaHeight = (tabBarHeight - 49)

2.获取底部的底部的安全距离,全面屏手机为34,非全面屏手机为0

let bottomSafeAreaHeight =  UIApplication.shared.windows.last?.safeAreaInsets.bottom ?? 0.0;
print(bottomSafeAreaHeight)

使用宏定义以下参数,用于屏幕适配处理

//底部的安全距离
let bottomSafeAreaHeight =  UIApplication.shared.windows.first?.safeAreaInsets.bottom ?? 0.0
//顶部的安全距离
let topSafeAreaHeight = (bottomSafeAreaHeight == 0 ? 0 : 24)
//状态栏高度
let statusBarHeight = UIApplication.shared.statusBarFrame.height;
//导航栏高度
let navigationHeight = (bottomSafeAreaHeight == 0 ? 64 : 88)
//tabbar高度
let tabBarHeight = (bottomSafeAreaHeight + 49)

iOS 适配全面屏iPhone X系列手机-Swift版相关推荐

  1. iOS 关于全面屏适配的方案及UI在不同尺寸下适配方案

    前言 全面屏刚出时,网上有说反人类.但过去这么久了,趋于技术的进步或看久了,大家也都慢慢习惯了(只是笔者还是买不起全面屏).官方适配中文版文档也出来了. 图源:( baijiahao.baidu.co ...

  2. Android 系统(156)----Android APP适配全面屏手机的技术要点

    为了更好的阅读体验,可以转到我的个人站点:Windy'Journal 目录 目录 关于全面屏 更大的屏幕高宽比例 在AndroidManifest.xml声明max_aspect值 更换部分被拉伸的图 ...

  3. iOS 14上全面屏iPhone的状态栏高度

    GitHub地址 问题 有些情况下,我们需要获取屏幕的状态栏高度,很多人使用类似下面的宏: #define StatusBar_HEIGHT (DEVICE_IS_FULL_DISPLAY ? 44. ...

  4. Android APP适配全面屏手机的技术要点-转载

    Android APP适配全面屏手机的技术要点  Windy_816 关注 2018.02.07 21:27* 字数 4010 阅读 5440评论 7喜欢 23 转载-来源 :https://www. ...

  5. 安卓全面屏总结及测试手机型号-RN适配全面屏总结

    水滴屏:(头部有摄像头,底部没有需要适配,但是华为手机可以设置底部虚拟按键) 准备使用的手机为华为P30测试 软件示意图如下:   . 刘海屏:(头部有摄像头和听筒,底部带虚拟按键) 华为Mate 2 ...

  6. android 适配全面屏手机

    什么是全面屏 全面屏跟曲面屏,这是两个不同的概念. 一般手机的屏幕纵横比为16:9,如1080x1920.1440x2560等,其比值为1.777777--,全面屏手机出现之前,Android中默认的 ...

  7. Android APP适配全面屏手机的技术要点

    为了更好的阅读体验,可以转到我的个人站点:Windy'Journal 欢迎关注个人技术号:Android葵花宝典 获取最新的Android高级进阶知识点,以及Android逆向方法. 关于全面屏 全面 ...

  8. “地表最贵iPhone”到货,iPhone XS 系列手机等你来测!

    作者:We Test小编 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 原文链接:https://wetest.qq.com/lab/view/411.html WeTest 导读 ...

  9. 苹果的全面屏真的可以引领手机领域吗?

    苹果手机的节奏终于在2017年被打破,跳过了iPhone 7s直接迈进苹果8时代,并推出了搭载全面屏的iPhone X.正如很多果粉所说,苹果终于彻底洗涮掉了乔布斯的印记,正式迈入库克时代. 在苹果手 ...

最新文章

  1. 敏感词过滤,PHP实现的Trie树
  2. java 循环3次_想请教下如何用for循环猜错3次就退出游戏
  3. JavaScript笔记(3)
  4. 再谈二叉树(二叉树概念,二叉树的性质,二叉树的存储结构)
  5. Oracle插数据timeout,oracle 11g 频繁报kmgs_parameter_update_timeout
  6. dev用不了_跟风喊AMD YES?很多生产力项目,你必须用IU
  7. 把百度网站设为首页_网站百度推广效果好不好?怎样才能把网站推广到百度首页?...
  8. OpenResty+Lua+redis+mysql实现高性能高可用限流缓存
  9. Numpy Math functions
  10. Repeater绑定数组
  11. C#cmd执行命令隐藏窗口,并保持程序一直运行
  12. 【015】基于51单片机的LCD1602流动字符串proteus仿真设计
  13. pcl小知识(十二)—— 斯坦福兔子和其他图形学模型数据下载
  14. 使用MindStudio进行MindX SDK财务票据OCR识别开发
  15. mapgis明码文件转为点线面文件_MapGIS明码文件的获得和在坐标转化中的应用研究(2)...
  16. SeedLab1: Sniffing Spoofing Lab
  17. 厦门大学计算机调剂要求,厦门大学考研调剂复试有什么要求
  18. CPU卡技术学习笔记1
  19. 放飞自我的体验,真无线耳机该如何让选择
  20. win10 mysql 卸载不干净,安装提示,已经存在

热门文章

  1. java 格式化输出 对齐_Java中中英文对齐输出问题,以及Java中的格式化输出
  2. Python高级语言(20190318)
  3. JS节点操作(1) - 父节点,子节点,兄弟节点
  4. 阿QQ 万能代码生成器,欢迎大家下载使用
  5. 10046 trace
  6. 能在业余时间赚钱、不干扰正常工作的副业
  7. 看乔布斯回应iPhone4“天线门”事件
  8. Windows下Nginx的启动,停止,重启等命令
  9. 你想学的都在这里!大佬手把手教你如何仿写出大厂的APP,Android面试题及解析
  10. 程序员你伤不起(三)