一. 背景
因为首页改版的需求,首页中间的tab放置了一个H5优惠活动页面,要求当从H5跳转到其他H5页面的时候,隐藏tabbar,回到第一层级H5的时候,再将tabbar显示出来。
效果如下:
但我们发现当进入到H5的第二层级页面,隐藏了tabbar,但是H5里面在tabbar所在位置的控件点击没有任何响应。
二. 分析
我们分析通过分析视图的层级,可以清楚的看到,我们只是将tabbar隐藏,但是当前VC的view的高度,依然是扣去底部tabbar高度的。
我们对比正常push后隐藏tabbar的VC
我们可以看到这个VC的view的高度是包含了原先tabbar高度。
也就是我们在tab第一层级,隐藏tabbar的时候,是需要去改变下当前VC的View的frame。
三. 解决办法
当前tabbar隐藏的时候,判断当前选中的tabbar的selectedIndex是否为h5所在的tab,如果是将当前h5所在的tab的VC的view视图改变,加上tabbar的高度。
我们从图层可以看到这时候当前VC的view的高度包含了tabbar的高度。