更新到12.1系统后发现在push进控制器后再返回,底部tabbar出现偏移错位问题。
1.处理的方法 :
在Appdelegate里面,设置全局的Tabbar样式
[[UITabBar appearance] setTranslucent:NO];
设置了tabbar的 translucent 属性为NO以后,需要注意一下自己的页面布局,底部从0(tabbar顶部)开始了,而不是从tabbar底部开始。
2.造成原因
这个问题是 iOS 12.1 Beta 2 引入的问题,只要 UITabBar 是磨砂的,并且 push viewController 时 hidesBottomBarWhenPushed = YES 则手势返回的时候就会触发。
出现这个现象的直接原因是 tabBar 内的按钮 UITabBarButton 被设置了错误的 frame,frame.size 变为 (0, 0) 导致的。如果12.1正式版Apple修复了这个bug可以移除调这段代码(来源于QMUIKit的处理方式),如果12.1正式版本Apple Fix了这个bug,可以移除掉这个bug
参考文章:https://www.jianshu.com/p/fb86dc70ba6c