适配iOS11和iPhoneX 遇到的问题(启动页,图片等)

  1. iPhoneX的页面展示不正常,没有占满全屏,如图
适配iOS11和iPhoneX 遇到的问题(启动页,图片等)_第1张图片
A43B4917-1A46-4896-B679-9F6FDBBB2CA4.png

首先快速定位这个问题是启动页没有设置对应的尺寸,导致显示不正常,先让设计师(美工)切对应iPhoneX尺寸的效果图1125x2436这个尺寸的启动图,你会发现,即使升级了你没有找到对应iPhoneX的启动图位置

适配iOS11和iPhoneX 遇到的问题(启动页,图片等)_第2张图片
D711CCA7-F87D-4DAC-9E42-3843A123FDC9.png

因为这还是我们之前的那个启动图列表,需要创建一个新的启动页列表,选中Images.xcassets---- 添加

适配iOS11和iPhoneX 遇到的问题(启动页,图片等)_第3张图片
44262E6D-CAAB-4EC6-BDA5-2D0E4F950E1B.png

创建好了我们会发现有iPhone X 对应的位置了,把切好的图片放进去,其他的位置也放好对应的启动页的图片,不详细叙述

适配iOS11和iPhoneX 遇到的问题(启动页,图片等)_第4张图片
C1EA5D11-B19B-4B5D-98CA-CD6C5BFA0A74.png

添加一个新的启动页,还需要修改Launch Images Sourc 选中我们新创建的启动页

适配iOS11和iPhoneX 遇到的问题(启动页,图片等)_第5张图片
1AC5B4B4-04D1-431C-A0AD-EC0D23BAA78E.png
  1. 在Xcode9版本上遇到了放到项目里的图片加载不出来,通过排查是以为新版的Xcode 只能识别放在 images.xcassest这个图片集下面的图片,不过不影响之前项目中的图片,新加的图片要放大这个目录下才能正常显示,可能是个bug ,也可能是苹果特意做的,希望我们把图片都放在这个目录下便于管理.

  2. 新版的Xcode 引入一些第三方的时候是直接拖到项目中,我们会勾选如下:

适配iOS11和iPhoneX 遇到的问题(启动页,图片等)_第6张图片
039E07EC-4D21-4981-A9C5-BD14B493A4BB.png

拖进项目里 正常写代码运行,会发现提示我们用的第三方有方法没有实现,确认问题是.m文件没有在项目中

适配iOS11和iPhoneX 遇到的问题(启动页,图片等)_第7张图片
8D85D7AF-B208-4974-856B-854FB0772236.png

把这里打上对勾,表示这个引入到项目中,程序可以正常运行了

  1. 新版的Xcode 支持无线调试功能 Window ---- Devices and simulator 勾选connet via network 就可以了,可是有的时间会提示Unable to copy symbols from this device

解决办法:

文章链接
打开mac系统的终端,更改对应文件夹的权限,设置为任何人都可以读写该文件夹
输入:chmod 777 /Users/admin/Library/Developer/Xcode
注: admin 为你当前用户的用户名,注意一下即可!

  1. Xcode 9 提交版本的时候提示Missing Marketing Icon,附带还发送一封邮件,只需要在项目的图标这个位置,增加一个1024*1024的icon
适配iOS11和iPhoneX 遇到的问题(启动页,图片等)_第8张图片
69D9A9CE-3C01-468C-BBBA-3CC3377B0F30.png

再次提交ok了!

  1. iOS11 tableview顶部留白问题

首先确定是否已经把预估行高和预估组头和组尾设置为0;

tableView.estimatedRowHeight = 0;
tableView.estimatedSectionFooterHeight = 0.0;
tableView.estimatedSectionHeaderHeight = 0.0;

如果这些都设置好了,还是有留白问题,那看是否设置了tableFooterViewtableHeaderView,如果设置了其中的一个都会导致出现头部的空白,即使你设置为一个空的view也会出现这样的问题,而且设置heightForHeaderInSectionheightForFooterInSection也不会生效,具体原因还要继续研究,有知道的也可以私信我,万分感谢!

解决办法,设置预估的行高都为0,并且取消设置tableFooterViewtableHeaderView

  1. iOS11 webview 底部出现黑的

ios 11引入了安全区域问题,对此的影响主要表现在scroview之类,默认是自动适配安全区域,这样会导致在你设备上显示scroview位置跟你所设置的frame不一样(实际上是影响该类的adjustedContentInset值),所以最好在appdelegate里面写上

UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

这一句话,这句话的意思就是不让scroview的子类自动适配安全区域,adjustedContentInset完全有contentinset决定,当你不写这句话的时候,你会发现,你的tableView拉到底之后再顶上来,正好是底部横杠的高度,但是当你写了之后就会发现这个功能就没有了。

在适配webview时,你会发现不拉到底部是正常的,但拉到底部的时候就会顶上来,你想你已经在appdelegate写上上面一句话了,怎么在这里还出现这个问题,因为webview不是scroview的子控件,所以你只写上面那一句对webview是没任何作用的,还需要对webview进行下面的设置才可以

webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

你可能感兴趣的:(适配iOS11和iPhoneX 遇到的问题(启动页,图片等))