美文网首页iOS开发
适配iOS11和iPhoneX 遇到的问题(启动页,图片等)

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

作者: xiao小马哥 | 来源:发表于2017-09-20 17:12 被阅读446次
    1. iPhoneX的页面展示不正常,没有占满全屏,如图
    A43B4917-1A46-4896-B679-9F6FDBBB2CA4.png

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

    D711CCA7-F87D-4DAC-9E42-3843A123FDC9.png

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

    44262E6D-CAAB-4EC6-BDA5-2D0E4F950E1B.png

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

    C1EA5D11-B19B-4B5D-98CA-CD6C5BFA0A74.png

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

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

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

    039E07EC-4D21-4981-A9C5-BD14B493A4BB.png

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

    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
    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;
    

    相关文章

      网友评论

      • 驿路梨花处处开:我按照你的这个方法创建新的icon,结果启动页还是和原来一样不能全屏,(把这里打上对勾,表示这个引入到项目中,程序可以正常运行了)这个地方就第一个勾选了,其余没选,不知道该怎么弄了。
        驿路梨花处处开:@xiao小马哥 解决了,谢谢,需要把Lunch Screen File 这个清空就好了,
        xiao小马哥:不太明白你说的内容,方便的话截图看看效果

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

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