美文网首页
iPhone X 屏幕适配,没有铺满屏幕的情况

iPhone X 屏幕适配,没有铺满屏幕的情况

作者: Mortimey_yt | 来源:发表于2017-12-10 16:58 被阅读172次
    图片.png

    在适配iPhone X时,发现iPhone X的屏幕上下没有铺满。新建的项目,都是铺满屏幕的。
    因为启动页用的是Launch Image Source,而用不到Launch Screen File 所以把LaunchScreen.storyboard 给删除了,Info.plist 里面也就没有了 Launch screen interface file base name 。
    解决方法是,在Info.plist 里面增加 Launch screen interface file base name 就可以了。
    注意:只是增加一个 key。Launch screen interface file base name
    如果增加了key,还是不行的话,添加一张iPhone X屏幕分辨率的启动图也能达到一样的效果。


    图片.png

    增加完的效果是,我们要注意的是,在iPhone X 里面,状态栏是不能隐藏的。如果隐藏了,会挡住界面,需要自己再去做适配。
    下面是适配iPhone X用到的宏

        // UIScreen width.
        #define  MM_ScreenWidth   [UIScreen mainScreen].bounds.size.width
        // UIScreen height.
        #define  MM_ScreenHeight  [UIScreen mainScreen].bounds.size.height
        // iPhone X 
        #define MM_iPhoneX (LL_ScreenWidth == 375.f && LL_ScreenHeight == 812.f ? YES : NO)
        // Status bar height.
        #define  MM_StatusBarHeight      (LL_iPhoneX ? 44.f : 20.f)
        // Navigation bar height.
        #define  MM_NavigationBarHeight  44.f
        // Tabbar height.
        #define  MM_TabbarHeight         (LL_iPhoneX ? (49.f+34.f) : 49.f)
        // Tabbar safe bottom margin.
        #define  MML_TabbarSafeBottomMargin         (LL_iPhoneX ? 34.f : 0.f)
        // Status bar & navigation bar height.
        #define  MM_StatusBarAndNavigationBarHeight  (LL_iPhoneX ? 88.f : 64.f)
        #define MM_ViewSafeAreInsets(view) ({UIEdgeInsets insets; if(@available(iOS 11.0, *)) {insets = view.safeAreaInsets;} else {insets = UIEdgeInsetsZero;} insets;})
    

    相关文章

      网友评论

          本文标题:iPhone X 屏幕适配,没有铺满屏幕的情况

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