iPhoneX快速适配,简单到你想哭。

 

研究了5个小时的iPhoneX适配。 从catalog,storyboard,safearea等一系列文章中发现。
如果我们想完全撑满全屏。那直接建一个storyboard就好了。
但撑满全屏后,流海就是一个恶心的问题。

思索半天后,我们发现,其实我们想要的。并不是撑满。 而是要去除留海部分。
那有没有一种办法,干脆就让我们的iPhoneX达到和iPhone6一样的显示效果呢。 或许这才是我们想要的。 下面的代码,放入每一个场景的onLoad中,靠热更新,就能支持iPhoneX了,效果不要不要的。(思路就是,iPhoneX下面,用ShowAll)

    if(cc.sys.isNative && cc.sys.platform == cc.sys.IPHONE){
        var size = cc.view.getFrameSize();
        var isIphoneX = (size.width == 2436 && size.height == 1125) 
               ||(size.width == 1125 && size.height == 2436);
        if(isIphoneX){
            var cvs = this.node.getComponent(cc.Canvas);
            cvs.fitHeight = true;
            cvs.fitWidth = true;
        }
     }

总结一下步骤

1、新建一个Laucn Screen.storyboard
2、删除所有View下面的内容,SafeArea也要去掉
3、General里面,使用这个Launch Screen作为加载屏

这里想要达到最好的效果,还有设计分辨率有关。
比较推荐的是 1280 x 640. 在其他设备上,默认使用 定宽策略。 也就是说,高度上做自适应。 背景图做成 1280 x 960 就可以适配到iPad了。 (如果之前用的是1280 x 720的设计分辨率,也不打紧。勉强可以用)。
1280 x 640的设计分辨率,见下图。

 

之前为了适配ipad也是用的这招!只不过上下会有黑边,但游戏内容一览无余。

        let isNotFit = cc.winSize.width / cc.winSize.height <= 1.65;
        let canvas = this.node.getComponent(cc.Canvas);
        if (isNotFit) {
            canvas.fitHeight = true;
            canvas.fitWidth = true;
        }
 
 
 
 
 
原文地址:https://www.cnblogs.com/luorende/p/9052492.html