关于隐藏Tabbar出现的问题

项目中经常会用到隐藏/显示tabbar的需求,但是中间总会出现意料之外的情况,总结如下:

  • 开始的时候这样写的 self.tabBarController.tabBar.hidden = YES;看起来完美解决了页面切换键Tabbar的隐藏和显示问题。

  • 但是,后面出现一个问题就是隐藏Tabbar的区域不能响应事件了,具体原因暂未深究,先给出解决方案 self.tabBarController.tabBar.frame = CGRectZero;需要显示的时候直接self.tabBarController.tabBar.frame = CGRectMake(0, MAX_HEIGHT-49, MAX_WIDE, 49);

  • 另外self.tabBarController.tabBar.frame = CGRectZero这个有个小bug,左上角会出现一个几像素的Tabbar,原因暂未深究,直接修改一下坐标先解决问题。self.tabBarController.tabBar.frame = CGRectMake(-100, -100, 0, 0);

** 更新一下,用了上面的方法实际去测还是不行,于是深入研究了一下终于解决,原因如下图:
关于隐藏Tabbar出现的问题_第1张图片
Bug示意图

如图可以看到,UIview的图层不是全屏的,正好是缺少Tabbar的区域,所以导致UIview上面的子试图才会出现底部与Tabbar重叠区域无法响应事件的bug,解决方法是:

  • 直接在隐藏Tabbar那里,
    完美解决

    运行之后再查看图层发现UIview也是全屏了自然也能响应方法了。网上的解决方法用了五六种都不行,所以最好还是深入研究一下,一起加油。

你可能感兴趣的:(关于隐藏Tabbar出现的问题)