美文网首页
WKWebView 底部视图显示不全

WKWebView 底部视图显示不全

作者: 天天星期天 | 来源:发表于2018-07-14 09:06 被阅读105次

好早之前遇到的这个问题,用WKWebView 显示界面时,最底部的悬浮窗口少了不少像素。这是之前用UIWebView没有遇到过的。


image.png
image.png

这个问题只出现在ios10 , ios11应该是已经修复了。(反正我没有再遇到了)
先写解决方法,再说探求过程。
这个问题是导航栏导致的。也算是苹果的bug。将导航栏设置为不透明,问题直接就解决了。
self.navigationController.navigationBar.translucent = NO;
----------------------------------------------------------华丽的分割线----------------------------------------------
下面我们来调试下ios10下的WKWebview加载网页。底部悬浮窗是消失的。于是我打印了下偏移。

    NSLog(@"self offic = %@",NSStringFromCGPoint(_wkWebView.scrollView.contentOffset));
    NSLog(@"self frame = %@",NSStringFromCGRect(_wkWebView.scrollView.frame));
image.png

发现了么。offset的Y轴偏移量是-64。刚好是底部消失的距离。然后我猜测这个距离刚好和导航栏高度有关 (有些朋友消失20像素,我还没有研究,但是我感觉是跟状态栏有关)。
想起ios的排版方式,如果导航栏带透明。frame排版是从导航栏上开始的。如果不透明则在导航栏下面开始排布。所以猜测和透明度有关。事实证明。猜对了!!!
将导航栏设为不透明之后再打印。


image.png

界面也回归正常。
本来以为这个问题遇到的人不多。

相关文章

网友评论

      本文标题:WKWebView 底部视图显示不全

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