iOS iPhoneX 适配

作者: 奔跑吧小蚂蚁 | 来源:发表于2017-11-29 18:02 被阅读11122次

    问题一:适配

    1.首先简单定义一下IPoneX

    #define IS_IPHONE_X (Screen_Height == 812.0f) ? YES : NO

    也有其他方法,不做解释。

    2.简单了解下IPhoneX 导航栏 状态栏 tabar高度

    1.导航栏高度 88 非非IPoneX手机为64

    2.状态栏高度44 非IPoneX手机为20

    3.tabar高度83 非IPhoneX手机为49  如下图所示;

    3.定义其高度

    #define Height_NavContentBar 44.0f

    #define Height_StatusBar (IS_IPHONE_X==YES)?44.0f: 20.0f

    #define Height_NavBar    (IS_IPHONE_X==YES)?88.0f: 64.0f

    #define Height_TabBar    (IS_IPHONE_X==YES)?83.0f: 49.0f

    到此为止相信适配的问题你已经解决了,只适用于自定义导航栏

    问题二:push时tabbar向上移动导致一块小黑屏幕

    简单描述一下,这就是一个苹果官方开发人员的一个打脸bug,直接上代码 如下;

    在你的基类导航控制器跳转代理方法中加上这个方法即可;

    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {

    [super pushViewController:viewController animated:animated];

    // 修改tabBra的frame

    CGRect frame = self.tabBarController.tabBar.frame;

    frame.origin.y = [UIScreen mainScreen].bounds.size.height - frame.size.height;

    self.tabBarController.tabBar.frame = frame;

    }

    问题三:UIWebView加载时下方黑屏加载完毕恢复

    原因不明,直接上代码,在初始化webview时,设置这个方法即可;

    if (@available(iOS 11.0, *)) {

    _webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

    }

    相关文章

      网友评论

      • long弟弟:你一直在用吗?我打印Height_TabBar 是83,但是相减的时候很不对:smile:
        #define Height_StatusBar (((IS_IPHONE_X ) == (YES))?(44.0): (20.0))
        #define Height_NavBar (((IS_IPHONE_X ) == (YES))?(88.0): (64.0))
        #define Height_TabBar (((IS_IPHONE_X ) == (YES))?(83.0): (49.0))
        奔跑吧小蚂蚁:@long弟弟 83就对了
        奔跑吧小蚂蚁:@long弟弟 我随便写的加个括号就对了

      本文标题:iOS iPhoneX 适配

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