iOS修复iPhone X设备tabBar高度乱跳的问题

释放双眼,带上耳机,听听看~!
如图所示

如果控制器的hidesBottomBarWhenPushed属性设为true,进行push操作之后会出现tabBar高度错乱的现象,先变矮一截,然后返回的时候又弹回到正常高度,非常影响使用感受,这应该属于iOS 11在iPhone X设备下自身的bug。

解决一:
KVO监听tabBar的frame,当frame改变时,我们取一个高度最大的值重新布局tabBar就行了,

OC:

[self.tabBar addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew context:nil];
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
NSLog(@"KVO---%@----%@",change[@"old"],change[@"new"]);
CGRect oldFrame = [change[@"old"] CGRectValue];
CGRect newFrame = [change[@"new"] CGRectValue];
if (oldFrame.size.height!= newFrame.size.height) {
if (oldFrame.size.height>newFrame.size.height) {
self.tabBar.frame=oldFrame;
}else{
self.tabBar.frame=newFrame;
}
}
}

解决二:

viewWillAppear中强制给 fram 赋值,kBottomSafeHeight判断是否 X 以上手机的34高度,这个方法没有上个好。
CGRect frame = self.tabBarController.tabBar.frame;
if (kBottomSafeHeight == 34.0) {
frame.size = CGSizeMake(frame.size.width,83);
}
self.tabBarController.tabBar.frame = frame;

解决三:

loading…

人已赞赏
iOS文章

iOS开发获取某一个连续跳转的VC

2020-1-19 9:49:11

iOS文章

iOS开发JPush 3.0 版本相关问题

2020-1-19 12:00:53

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索