分辨率

iPhoneX 的分辨率:2436 x 1125px,812 x 375pt

iPhoneXs 的分辨率: 2436 x 1125px,pt: 812 x 375pt

iPhoneXs Max 的分辨率:2688 x 1242px,pt: 896 x 414pt

iPhoneXr 的分辨率:1792 x 828px,pt: 896 x 414pt

 123456789
10
11
12
13
14
15
16
17
18
19
20
21
//判断是否是ipad
#define isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
//判断iPhone4系列
#define kiPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhone5系列
#define kiPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhone6系列
#define kiPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iphone6+系列
#define kiPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhoneX
#define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhoneXs
#define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhoneXs Max
#define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPHoneXr
#define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)// 判断是否是刘海机型
#define IS_IPHONE_X_S_Max_R (IS_IPHONE_X || IS_IPHONE_Xs || IS_IPHONE_Xs_Max || IS_IPHONE_Xr)

NavigationBar 和 TabBar 的判断

1
2
3
4
//刘海机型
#define StatusBar_Height (IS_IPHONE_X_S_Max_R ? 44.0 : 20.0)
#define NavBar_Height (IS_IPHONE_X_S_Max_R ? 88.0 : 64.0)
#define TabBar_Height (IS_IPHONE_X_S_Max_R ? 83.0 : 49.0)

其实刘海屏的主要影响是屏幕顶部多出来的一块刘海,所以其实可以获取状态栏的高度,来确定导航栏需要增加的高度或者是位置(这个就要看具体的业务需求了),不过这个有一点问题就是如果状态栏被隐藏的话,高度就会为 0,如果在状态栏隐藏状态下判断,拿到的高度显然是不符合期望值的,不过这个情况也是比较少见的情况,如果注意页面之间的代码逻辑的话,是可以避免的。

1
[UIApplication sharedApplication].statusBarFrame.size.height

iOS刘海机型UI适配(X、Xs、Xs Max、Xr)相关推荐

  1. android 布局可大可小,UI设计教程之:ios与android ui适配(将IOS UI转换成Android经验畅谈)...

    内容提要:这是UI设计系列教程之ios与android ui适配经验畅谈.文章作者介绍了自己将IOS UI转换成Android经验,包括:不要直接转换.了解单位和组件缩放格式.屏幕尺寸DP和像素的换算 ...

  2. vivo官网APP全机型UI适配方案

    vivo 互联网客户端团队- Xu Jie 日益新增的机型,给开发人员带来了很多的适配工作.代码能不能统一.apk能不能统一.物料如何选取.样式怎么展示等等都是困扰开发人员的问题,本方案就是介绍不同机 ...

  3. [置顶] 【IOS】IOS7 UI适配

    昨天下了把手机升级成了IOS7 正式版,然后下了最新的xocde5.  试着编译了一下刚刚完成的几个应用,还好问题不大,半个小时的时间都适配好了,然后改了下几个新出现的warning.过几天等空了,要 ...

  4. 【IOS】IOS7 UI适配

    昨天下了把手机升级成了IOS7 正式版,然后下了最新的xocde5.  试着编译了一下刚刚完成的几个应用,还好问题不大,半个小时的时间都适配好了,然后改了下几个新出现的warning.过几天等空了,要 ...

  5. iOS 不同机型屏幕适配

    // .pch 文件中写 // 判断是iPhone机型 /** 4s 960 * 640* 5/5s 1136 x 640* 6/6s/7/8 4.7英寸 1334 x 750* 6p/6sp/7p/ ...

  6. ios与android设计适配,IOS与Android UI适配方案

    方案一 IOS与Android共用一套效果图 1242*2208 IOS与Android常用的尺寸中,最大尺寸的为i6+的尺寸,即1242*2208px IOS常用尺寸为1242*2208  750* ...

  7. h5 iOS 刘海屏适配

    之前做app内嵌页时,按照机型做了齐刘海适配,到现在iPhone12发布后,发现ios 齐刘海机型很多,所以按照机型适配有点繁琐,统一修改如下. 先看一下各个机型以及分辨率:https://www.t ...

  8. iOS适配iPhoneX/XR/XS/XS MAX

    适配只看三个参数: 1.渲染像素–屏幕截图的图片尺寸,单位px 2.逻辑像素–程序员开发所用尺寸,单位pt 3.倍率–渲染像素/逻辑像素,得到倍数关系.常见倍率@2x,@3x Safe Area(安全 ...

  9. iPhone X,iPhone XS,iPhone XR,iPHone XS Max 适配(只说实现,不BB)

    今天凌晨苹果新发布了三款手机,分别是iPhone XS,iPhone XR,iPhone XS Max,其中iPhone XS的屏幕尺寸和iPhone X的是一致的,另外两款都有了新的尺寸,具体尺寸如 ...

最新文章

  1. R语言ggplot2可视化:将dataframe和数据列名称传递给函数通过函数进行ggplot2可视化输出
  2. 透彻影像王书浩:三易其辙与功不唐捐
  3. macos下 python安装cx_oracle
  4. My97DatePicker日历插件
  5. 计算机网络-思维导图(4)网络层
  6. Linux配置sudo
  7. 简单实用的PS亮度蒙版工具:Lumenzia Mac版
  8. JavaWeb项目实战(3)软件快速下载
  9. Ps 初学者教程,如何使用图层蒙版合成图像?
  10. Atitit 高并发 性能指标 与压测工具 压测方法 目录 1. 性能的几个指标 1 1.1. 主要是响应时间(Response time) 1 1.2. 2.吞吐量(Throughput) 1 1
  11. sqlite 表与表之间的关系_第33章 Django多表关系之一对一
  12. 怎么把文本文档txt改成html,如何将Word文档转换成txt格式文本
  13. JAVA API帮助文档
  14. mysql 视图 多个 select_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...
  15. Focal Loss 安装与使用 TensorFlow2.x版本
  16. 微信双开,超简单,无需bat,无需代码
  17. semiplannar 什么是_图像识别VPU——易用的嵌入式AI支持深度学习平台介绍
  18. cad相贯展开图lisp_cad相贯线的画法
  19. 关于centos安装最新的firefox出现的问题GLib-GObject-CRITICAL **
  20. 编程式路由导航连续跳转出现NavigationDuplicated报错的问题

热门文章

  1. python节日贺卡绘制
  2. 怎么使用百度更精准搜索?我来教你6个搜索引擎小技巧
  3. 用JAVA编写MD5大写32位加密
  4. 2021会宁三中高考成绩查询,2019中考分数线
  5. Ubuntu16.04 桌面 launcher 丢失
  6. TCP/IP原理浅析
  7. 京东 按时上下班被开除,国内IT业惨状
  8. 网易严选应用的云原生演进实践
  9. 自家小程序 如何实现定点跳转其他(比如:京东,天猫,淘宝)的小程序的具体店铺
  10. 失落的嵌入式 英特尔强推MeeGo意欲何为