升级了Xcode9,变化很大啊,先说大家一直关心的适配齐刘海吧. 
这个东西好像出来之后 我QQ群里面iOS开发的很多人都炸了.确实这个齐刘海对我们开发者很不友好,往上xib的项目适配文章已经有了,但是还没有特别好的纯代码工程的适配.今天我就抛砖引玉,简单说一下我的纯代码工程是如何进行适配的. 
首先先说一下,如果你刚刚升级Xcode9之后,急不可耐马上打开iPhoneX的话,那么你会发现自己的工程是这样的:

丑的一匹吧.而且也没体现出iPhoneX的大占比 
.这时候你需要在项目设置里面直接用LaunchScreen.xib或者LaunchScreen.storyboard进行配置启动图或者images-LaunchImage 里面添加上iPhoneX的启动图 1125 × 2436 
同时上传一下适配好的页面大家进行一个对比:

我改了一下导航栏颜色,看的更直观一点. 
再说一下顶部状态栏的问题,大家状态栏最好还是用 
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame]; 
来获取 不要用固定数字啦~这次是齐刘海下次可能是马尾辫卧槽

昨天发完文章之后,我收到有人回复说和系统的不一样,吓得我赶紧打开系统相册看一看,图片是这样的:

于是我稍微调整了一下: 
简单逻辑就是

  #define TabbarHeight     ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49) // 适配iPhone x 底栏高度_tabBarView.frame = CGRectMake(0, CurrentScreenHeight - TabbarHeight, CurrentScreenWidth, TabbarHeight);
  • 1
  • 2
  • 3
  • 4
  • 5

下面贴图 

还有问题请继续留言哦,我看到必定第一时间回复并更新文章

再说一下下面tabbar的问题,有的人说自己的tabbar受到了影响,这个我想说我的自己写的一套tabbarController,是在最底部的view上添加的按钮,所以获取屏幕高度后,没有产生错位问题,大家如果有移位问题的可以留言,我会第一时间回复的

还有就是关心的比例适配.这里我想说的是.iPhoneX 和5 6 6P的比例尺寸不同的,但是其实宽度比是正比的,只是高度比的问题.我们可以在所有的比例适配中都乘以屏幕宽度比,不管是左右还是上下,这样,同一页面 iPhone X的状态就是比其他机型加大了可观看域,不影响其他的布局及显示哦.如果还有 [爱劈叉]的适配问题,可以在底部留言哦,这篇文章也会持续更新.

其他参考文章:

1,《关于刘海打理这种事儿,美团点评的iOS工程师早就有经验》

2,《企鹅 FM-iOS 11 安全区域适配总结》

iOS开发-------- iPhone X代码适配 (齐刘海处理)相关推荐

  1. IOS 开发 iPhone屏幕尺寸、分辨率及适配

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point ...

  2. 苹果要求全新App开发四月起必须支持“齐刘海”

    近日消息,苹果公司通过邮件告知应用程序开发者,从2018年4月起提交给App Store的所有新应用必须支持iPhone X的超级视网膜显示器.这意味着新应用程序的开发者必须确保它们适应"齐 ...

  3. Android 三步简单适配齐刘海系统状态栏

    个人思路: 说到齐刘海适配,最典型的就是MainActivity的几个fragment中有的需要透明系统状态栏 有的不需要, 而一般需要透明系统状态栏的fragment顶部都会放个轮播图,然后在轮播图 ...

  4. [ios开发基础之]代码块

    iOS4引入了一个新特性,支持代码块的使用, 这将从根本上改变你的编程方式.代码块是对C语言的一个扩展,因此在Objective-C中完全支持.如果你学过Ruby,Python或Lisp编程 语言,那 ...

  5. html居右显示语言设置,iOS开发:纯代码设置UIButton文字居左或者居右显示

    UIButton这个控件使用,作为资深的iOS开发人员来说是小儿科,但是有些时候还是需要记录一下UIButton的一些其他用法,这样方便快速解决实际问题.比如UIButton的纯代码编程的时候,设置文 ...

  6. iOS开发地图的代码和方法

    类方法 说明 + (BOOL)locationServicesEnabled; 是否启用定位服务,通常如果用户没有启用定位服务可以提示用户打开定位服务 + (CLAuthorizationStatus ...

  7. ios开发中计算代码运算时间_iOS日历、日期、时间的计算

    时间和日历的计算在iOS开发中经常看到,经常看到大家在百度,开源中国等搜索这些答案.今天写个简单的时间和日历有关的计算. 获取一个月的总天数 1.获取当月的天数 - (NSInteger)getNum ...

  8. android齐刘海屏幕适配,GitHub - biganans/cocos2x-adaptation: cocos2dx 横版各种适配 iphoneX适配 齐刘海 凹凸屏...

    cocos2x-adaptation cocos2dx 适配 横版 iphoneX适配 iphoneX适配 apple官方参考:https://developer.apple.com/videos/p ...

  9. ios开发之常用代码

    1,获取翻转事件,并开启翻转: 只要在viewcontroller的类中加入 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOri ...

最新文章

  1. linux解压tz zip,TZ 文件扩展名: 它是什么以及如何打开它?
  2. 单元测试框架之Robolectric踩坑
  3. 【python】Macbook M1/M1pro/M1max 安装anaconda记录
  4. Soul网关源码阅读(九)插件配置加载初探
  5. 太秀了!单片机内置 ADC 实现高分辨率采样?
  6. 新托业2020一周极限自救攻略
  7. pycharm引用pyd文件
  8. Mybatis Plus 3.1.1 lambda 表达式查询时异常 cannot find the corresponding database column name!
  9. 手机百度浏览器怎么设置繁体字_嫌百度太花哨?来看看如何让百度变得极简
  10. 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速【转】
  11. python随机生成邮箱、自我介绍、地址、时间等
  12. DM36x Rate Control Modes
  13. proxmox ve 中文社区_基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置...
  14. 老派程序员:徒手实现伟大成就
  15. 鸿蒙系统和安卓哪个更流畅,鸿蒙系统比安卓系统更流畅吗?
  16. Head FIrst OOAD 读书笔记
  17. IT行业岗位及发展方向
  18. 【NVivo教程】如何进行主题分析
  19. Mac迅雷瘦身精简教程
  20. 怎么制作精美的公众号文章?教你几招

热门文章

  1. Kafka工具--Kafka Tool
  2. 阻塞和非阻塞的区别(干货!!!)
  3. 液体管段式大口径超声波流量计
  4. PHPstorm等系列IDE永久破解
  5. “OLED显示屏”市场需求旺盛,各显示面板厂商纷纷加快产能布局
  6. DedeCMS织梦文章数据在线一键迁移至WordPress系统(附插件)
  7. 2022-2028全球与中国汽车可再生材料市场现状及未来发展趋势
  8. 自定义tag打包Bootstrap模态对话框并动态加载传值
  9. 通俗易懂权限管理模块设计-Java
  10. 蔬菜购物网站设计【协同过滤的推荐算法】