iOS【开发适配iPhone XS, iPhone XS Max, iPhone XR】

30 篇文章 0 订阅

官方适配视频:
Building Apps for iPhone XS, iPhone XS Max, and iPhone XR。
原视频连接 https://developer.apple.com/videos/play/tech-talks/207/

总结为以下几点:

一、   屏幕大小适配

三款手机,分别是iPhone XS,iPhone XR,iPHone X Max,其中iPhone XS的屏幕尺寸和iPhone X的是一致的,另外两款都有了新的尺寸,具体尺寸如下

具体原理性的东西就多说了,因为iPhoneX系列都一样,本文只说明一下具体怎么做,要适配屏幕,首先得让他以正确的姿势启动,如果你使用的是LaunchScreen.storyboard,就不需要考虑这个了,但如果你使用的是LaunchImag,就需要提供正确的启动图。需要注意的是XR使用的@2x的图。

启动图尺寸       机型                  命名

640 × 960       iPhone4s          Default@2x

640 × 1136      iPhone5s          Default-568h@2x

750 × 1334      iPhone              Default-667h@2x

1242 × 2208    iPhonePlus       Default-736h@3x

1125 × 2436    iPhoneX, XS      Default-812h@3x

828 x 1792      iPhoneXR          Default-828h@2x

1242 x 2688    iPhoneX Max    Default-1242h@3x

本文提到的这四款手机都有一个共同的特点,就是“齐刘海”+底部触摸条

针对这种样式的屏幕,我们处理方法是一样,几个宏直接搞定
怎么判断是不是iPhone X? 获取当前屏幕宽度或高度与尺寸进行比较就可以了


#define kNavBarHeight              (iphoneX ? 88.0 : 64.0)
#define kBottomBarHeight        (iphoneX ? 34.0 : 0)
#define kContentHeight             (kScreenHeight - kNavBarHeight-kBottomBarHeight)

针对继承自UIScrollView的,需要处理一下内边距

第一步:关闭自动调整内边距
if (@available(iOS 11.0, *)) {
        [UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}

第二步:在使用的地方手动设置内边距(千万别全局设置,容易出事)
self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, kBottomBarHeight, 0);
这样设置以后,底下的触摸区域就能正常显示内容了,而且当UIScrollView滑到最底部的时候,不会被遮住。

除此之外,有些比较大的控件,产品会要求按照屏幕比例进行调整,小屏幕的显示的小一点,大屏幕的显示大一点,这个也是两个宏搞定
#define kScaleH                   (kScreenHeight/667.0)
#define kScaleW                  (kScreenWidth/375.0)
解释一下为什么除的667和375,因为UI给的设计图示按照667 * 375的屏幕给的,如果你们的UI小姐姐给的设计图是按照iPhone5s的尺寸设计的,分母就要换成568和320。

 

二、老生常谈的安全区域(Safe Area)

这里着重说明了一下collectionView

 

 

竖屏展示的内容:

 

横屏展示内容:

 

解决办法:

  • 1.如果使用storyBoard或者xib的话,需要在collectionView上,勾选Safe Area。

     

     

  • 2.如果使用代码的话,横屏添加适配代码即可(比较简单,自行百度吧)。

三、推荐使用Auto Layout。

Apple公司已经数次提及Auto Layout在新版本的使用中,性能非常好,不过考虑国内公司目前的情况,纯用Auto Layout开发的公司少之又少,纯用storyBoard和Xib开发的公司更是少之又少。

四、新增UISplitViewController

如下图:

 

以前只有ipad才有的UISplitViewController,现在在

代码如下:

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值