# Demo_iPhoneX_Adapter **Repository Path**: potato512/Demo_iPhoneX_Adapter ## Basic Information - **Project Name**: Demo_iPhoneX_Adapter - **Description**: No description available - **Primary Language**: Objective-C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-25 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Demo_iPhoneX_Adapter iPhoneX adapter demo。 * iPhone X存在特殊的地方 * 顶端的齐刘海区域:即状态栏由原来的20变更为现在的44,相应的导航栏以上变化64(20 + 44)->88(44 + 44)。 * 底部的一道杠区域:即距离底端由原来的0变为现在的34。 * 分辨率为1125px * 2436px。 * iPhone X的适配(APP内部样式适配) * iPhoneX的屏幕宽:375 * iPhoneX的屏幕高:812 * 状态栏高 44 * 导航栏高 44 * 一道杠高 34 * **内容显示安全区域 690** #### 适配类型归类 ##### 启动图 * iPhone X采用的和iPhone 6p一样的@3x的图。 * iPhone X 的屏幕平尺变为1125 * 2436。 * 添加一张 1125 * 2436 的启动图片。 ##### 引导图 * 添加 1125 * 2436 的引导图片。 ##### UITabbarController视图控制器 * 使用系统的 UITabbarController视图控制器 时候,不需要额外进行适配处理,因为系统会默认作处理,即底端距离为34。 ##### UIViewController视图控制器, UINavigationController导航控制器, UIView * 隐藏了UINavigationController导航控制器,同时使用MJRefresh,会造成顶端出现空隙的情况 解决方案,如下代码示例 ``` if (@available(iOS 11.0, *)) { self.collectionView.contentInsetAdjustmentBehavior = UIApplicationBackgroundFetchIntervalNever; } else { self.automaticallyAdjustsScrollViewInsets = false; // Fallback on earlier versions } ``` * 适配iPhone X脚底:列表页面不去适配,底部有按钮的界面要适配 未适配时效果图 (1)未设置iPhoneX启动图时的效果 ![unAdapter.gif](./sources/images/unAdapter.gif) (2)隐藏了UINavigationController和UITabBarController时,未设置安全区域的适配效果 ![undapter_hiddenTabNav.gif](./sources/images/undapter_hiddenTabNav.gif) 适配后效果图 (1)设置了iPhoneX启动图时的效果 ![adapter_tabNav.gif](./sources/images/adapter_tabNav.gif) (2)隐藏了UITabBarController时,设置了安全区域的适配效果 ![adatper_hiddenTab.gif](./sources/images/adatper_hiddenTab.gif) (3)隐藏了UINavigationController和UITabBarController时,设置安全区域的适配效果 ![adatper_hiddenTabNav.gif](./sources/images/adatper_hiddenTabNav.gif)