修改上移的时候直接
// 修改tabBra的frame
CGRect frame = self.tabBarController.tabBar.frame;
frame.origin.y = [UIScreen mainScreen].bounds.size.height - frame.size.height;
frame.size =CGSizeMake(frame.size.width, frame.size.height);
self.tabBarController.tabBar.frame = frame;
在viewWillAppear 里面写就不会上移了。
我的还出现下移的情况:
// Tabbar安全区域底部间隙
#define TabbarSafeBottomMargin (is_iPhoneX ? 34.f : 0.f)
也是在viewWillappear里面
// 修改tabBra的frame
CGRect frame = self.tabBarController.tabBar.frame;
frame.origin.y = [UIScreen mainScreen].bounds.size.height - frame.size.height -TabbarSafeBottomMargin;
frame.size =CGSizeMake(frame.size.width, frame.size.height+TabbarSafeBottomMargin);
self.tabBarController.tabBar.frame = frame;
其实就是位置大小被改变了 ,加34在iPhone X上就好了。
去年我是根据尺寸判断是否iPhone X的,
#define is_iPhoneX k_ScreenHeight == 812
今年只要改一下这个判断就好了
#define is_iPhoneX [UIApplication sharedApplication].statusBarFrame.size.height == 44 ? YES : NO
新机的状态栏都是44 直接就这样写了。