• 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;
            }
     
     
     
     
     
  • 相关阅读:
    读书日记-策略模式
    五、@property的参数
    三、Object-C内存管理
    二、OC的构造方法和descriprtion方法
    一、初始Object-C
    linux中安装eclipse--CnetOS6.5
    linux中安装和配置 jdk
    linux中安装mysql
    bzip2压缩 解压缩
    gzip压缩解压缩
  • 原文地址:https://www.cnblogs.com/luorende/p/9052492.html
Copyright © 2020-2023  润新知