iPhoneX的适配

作者: 记忆的北极 | 来源:发表于2018-04-24 17:30 被阅读14次
    一,前言

    最近几天开始做iPhoneX的适配,这几天一直刷新自己的基础知识,有没太多的了解iPhoneX的适配,所以写了这篇文章,为了记录适配过程中出现的问题和解决方式.

    二,设置启动图片 LaunchImage
    设备 横竖 1 2 3
    iOS 5,6 Portrait 1x(320x480) 2x(640x960) Retina4(640x1136)
    iOS7+ Portrait 2x(640x960) Retina4(640x1136)
    iOS 8+ Portrait RetinaHD5.5(1242x2208) RetinaHD4.7(750x1334)
    iOS 8+ Landscape RetinaHD5.5(2208x1242)
    iOS 11+ Portrait iPhoneX-3x(1125x2436)
    iOS 11+ Landscape iPhoneX-3x(2436x1125)

    对应的如下图


    LaunchImage.png
    1,没设置好LaunchImage出现的问题

    刚开始的时候LaunchImage没有添加iPhone X的两个启动视图(iPhone X Portrait iOS 11+ 和 iPhone X Scape iOS 11+),所以造成的一个问题是,运行在iPhone X上包括启动视图的屏幕上都是上下有留黑的. 反之,如果只添加iPhone X的两个启动视图运行在iPhone X以外的手机上,也会同样出现上下留黑.

    2,如果项目中使用了老的LaunchImage(即不包含iPhone X)

    我们可以创建一个新的LaunchImage,如下图右键,


    addLaunchImage.png
    三,进入项目之后

    这个时候再设置相应的navigation和tabbar的高度
    这个可以根据屏幕的高度来调节navigation和tabbar的高度.
    可以定义一个宏来获取屏幕的高度,根据屏幕的高度来调整navigation的的高度

    #define KNavigationHeight [[UIScreen mainScreen] bounds].size.height == 812 ? 88:64
    

    这个宏定义成全局的宏,如果你的项目中是自定义的NSNavigationVontroller或者导航栏是自定义的view的话,那么直接使用约束进行调整高度,可以使用IBOutlet把NSLayoutConstraint到当前类一个私有属性

    @property (weak, nonatomic) IBOutlet NSLayoutConstraint *navigationViewHeight;
    

    然后进行赋值

    self.navigationViewHeight.constant = KNavigtionHeight;
    

    相关文章

      网友评论

        本文标题:iPhoneX的适配

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