美文网首页
iPhone XS Max和iPhone XR屏幕适配

iPhone XS Max和iPhone XR屏幕适配

作者: Sweet丶 | 来源:发表于2018-10-26 18:55 被阅读345次

一、新屏幕情况介绍

  1. iPhone XS Max机型的屏幕是刘海屏,分辨率为1242 x 2688 ,屏幕的缩放比例是3,所以屏幕的宽高度分别为:

UIScreen.mainScreen.bounds.size.width = 1242/3 = 414;
UIScreen.mainScreen.bounds.size.height = 2688/3 = 896;
XS Max机型的屏幕是plus机型的全面屏版, 使用的图标是@3x.

  1. iPhone XR机型的屏幕也是刘海屏,分辨率为828 x 1792,屏幕的缩放比例是2,所以屏幕的宽高度分别为:

UIScreen.mainScreen.bounds.size.width = 828/2 = 414;
UIScreen.mainScreen.bounds.size.height = 1792/2 = 896;
XS Max机型的屏幕也是plus机型的全面屏版,尺寸与XS Max一致,只不过分辨率较低, 使用的图标是@2x.

二、屏幕适配关键点

1. 导航栏相关

如果是自定义导航栏view,此时要做的是,判断是刘海屏的情况下,将自定义的导航栏view拉高
判断是否是刘海屏的方法个人认为最好用的是statusBarFrame

CGRect statusBarFrame = UIApplication.sharedApplication.statusBarFrame;
 if (statusBarFrame.size.height > 20) {// 看是不是全面屏X\ XS\ XR\ XS MAX以及后续
      // do some thing to adjust layout
 }

如果是使用的系统的导航栏,那么控制器里面子视图就需要注意了,在创建时使用的写死的64或者因为之前只适配iPhone X判断刘海屏的方法仅仅是判断高度是否==812,那么现在就要改掉,判断的方法和上面的一样

2. 底部类似tabbar、ActionSheet的视图

自定义的底部弹窗视图像ActionSheet样式的及最底部有个按钮那种的视图适配
个人适配方法是将底部最接近的按钮高度拉高20-30,看自己情况(系统的tabbar是拉高了34),然后设置按钮的contentEdgeInsets

btn.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 15, 0);

内部视图的高度计算要减去的是真实的底部条高度!!!

3. 不需要导航栏的页面的适配
  1. iOS11以上的适配依然需要
if (@available(iOS 11.0, *)) {
            mainScrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        }
  1. 由于状态栏的高度在刘海屏上是44,比原来高20,所以原来在iPhone X屏幕上做了适配的,在此时也一样需要

  2. 内页在使用侧滑返回手势返回时,内页隐藏导航栏而外部的不需要,此时就会多少有点尴尬。

个人认为在很重要的页面,可以做适配===仅供参考,(个人是看微信的效果模仿的)

  • 导航条背景图片设置为透明图片
  • 自定义view视图在导航条视图下面,自定义view的颜色为原来导航条颜色
  • 这样的话,导航条上的UIBarButtonItem的渐变效果、点击效果不受影响

三、使用感受

公司买了 iPhone XS Max,手机用来玩吃鸡游戏体验是真的好!!连吃两把鸡。

相关文章

网友评论

      本文标题:iPhone XS Max和iPhone XR屏幕适配

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