前言:
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设置的时候就有效。
如果有知道的大佬请您留言回复一下这个问题,分享解决问题的办法让大家一起进步。