问题描述及问题结果:
今天遇到一个基于wkwebview 的跳转的问题,就是在隐藏了导航栏的页面,跳转到有导航栏的页面的时候,出现下图的问题:
而正确的显示应该是下面的:
由于我在其他页面打开是没问题的,反而在我一个特定页面打开之后出现这个问题,所以问题肯定出在这个特定页面
后面我查看了分层图,如下:
发现有个页面比之前的页面下移了一段距离,而他后面的webview页面都是下移的。
而这个页面就是这个特定页面。
初步断定,是我这个页面的导航栏的设置有问题。后面经过严密的排查,是因为我在viewWillAppear方法中,写了一句代码:
self.navigationController.navigationBar.translucent = NO;
这句话是设置导航栏是否透明。我设置了不透明,但是我又把导航栏隐藏了,所以导致他显示的时候只好把导航栏那一块空置出来,下移显示的页面。但是为什么会导致后来的页面也是这样,我就不清楚了,有可能ios页面叠放原理是如果当前页未做高度变化,则下一个页面跟上一个页面保持同一页面高度。
所以,以上的解决办法就是把这句代码注释掉。
如果大家遇到类似的bug,可以参考。
PS:这里友情建议一下,大家在搜索解决办法的时候,如果找不到正确的搜索结果,不是因为没有人遇到,可能是搜索的描述不够准确。因为有部分大佬喜欢把问题结果作为标题。这样真苦了小白,小白只会根据结果去搜索遇到的问题,这里我倡议把标题作为问题描述,而是解决办法。
这里放上我刚刚经历的真实案例,我为了解决上述问题,百度了好久,比如:wkweview底部遮拦...,wkwebview页面无法完整显示等等,后面又跑去问了好些大佬,还是没解决问题,浪费了好久的时间,结果是我自己一句一句代码测试才找出问题。其实大佬真不知道你代码中写了什么导致出问题,只能给出大概方法和可能的结果,但是如果是细微的问题导致的,大佬也可能无能为力。最后解决问题之后,我把我找出的这句代码放入百度一搜,结果令我崩溃:
前几条都是我遇到问题的解决方案,哎,其实可以一分钟解决的事,浪费了足足一个上午。借此呼吁一下大佬们分享解决方案时,标题能够贴近遇到的问题,而不是解决问题的方法。谢谢各位路过的人,愿你们能传播下去。