转载

iPhoneX-WebView适配问题

前言:

iOS11之后引入了安全区域的概念,对此的影响主要表现在scroview的子类,但是在适配安全区域的时候发现了一些不科学的现象,当然,没有偏离主题的,请继续往下看。

安全区域适配

if (@available(ios 11.0,*)) { UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; }

不知道大家有没有在appdelegate里面写过这句话,这句话的意思就是不让scroview的子类自动适配安全区域。当你不写这句话你会发现,你的tableview拉到底之后顶上来了,正好是底部横杠的高度,但是当你写了之后就会发现这个功能能没有了。

回到主题WebView

大家可以尝试一下 当你加载一个页面内容没有超过全屏的时候,iphoneX下面那个横岗部分也就是安全区域内是不显示html内容的,对于一些页面内容较少,比如注册登录页面,底部不显示内容多难看,尤其是在你h5那边加载转转的时候到这边没有全屏,产品肯定会说你,如果解决,这里有几种解决办法,参考一下使用:

1.在iphoneX的时候增加webview高度34,这个方法太局限,不提倡

2.在iphoneX的时候改变webview.scroview的高度,这个方法我也不推荐,我没用过。

3.在iphoneX的时候设置webview.scroview.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;这个方法目前我感觉是最靠谱,直接让webview放弃适配安全区域,当然写上了这个,在webview滑到底部的时候就不会顶上来了。

问题疑惑

在这里有个疑惑,既然在appdelegate可以全局设置UIScrollViewContentInsetAdjustmentNever这个属性,为什么对webview布局无效,反而单独对webview.scorview设置的时候就有效。

如果有知道的大佬请您留言回复一下这个问题,分享解决问题的办法让大家一起进步。

正文到此结束
Loading...