好早之前遇到的这个问题,用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
界面也回归正常。
本来以为这个问题遇到的人不多。
网友评论