总是在耳边听说UItabbar高度不好适配,在这问在哪问的,但是还没见过,之前自己没遇到过,这次新项目搭建的时候看了一下确实有这个问题,于是乎上网查了一下然后发现其实没那么难只要我们换一下思路就可以了.废话不多说上图上代码
屏幕快照 2018-05-25 下午9.56.34.png
具体的实现逻辑就是写一个继承UITabBarController的类然后修改类里面的方法
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
if (@available(iOS 11.0, *)){
for (UIView *view in self.view.subviews) {
if ([view isKindOfClass:[UITabBar class]]) {
//x的位置不变 y的位置你自己调调到UI满意 宽不变 高也不能变 最终只是改变一下y的相对位置
view.frame = CGRectMake(view.frame.origin.x, self.view.bounds.size.height-64, view.frame.size.width, 83);
}
}
}
}
解决
更新
之前这么写有一个问题,就是会出现tabbar在push和pop的时候有上移下移的问题,后来查了一些资料解决了这个问题,在需要展示tabbar的控制器中添加下面的代码就可以了
- (void)viewWillDisappear:(BOOL)animated{
if (iPhoneX) {
if (@available(iOS 11.0, *)){
// 修改tabBra的frame
CGRect frame = self.tabBarController.tabBar.frame;
frame.origin.y = [UIScreen mainScreen].bounds.size.height -64;
self.navigationController.tabBarController.tabBar.frame = frame;
}
}
}
- (void)viewWillAppear:(BOOL)animated{
if (iPhoneX) {
if (@available(iOS 11.0, *)){
// 修改tabBra的frame
CGRect frame = self.tabBarController.tabBar.frame;
frame.origin.y = [UIScreen mainScreen].bounds.size.height -64;
self.navigationController.tabBarController.tabBar.frame = frame;
}
}
}
完美解决iPhone X的问题同时解决了,侧滑时上移的问题.如果有不理解的,或者更好的解决办法欢迎留言.
还有一种方法就是自定义tabbar,代码已写好,整理后会上传.先展示一下效果.
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.24.19.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.24.22.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.24.28.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.24.31.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.24.35.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.24.38.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.25.56.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.26.03.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.26.30.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.26.32.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.26.37.png
Simulator Screen Shot - iPhone X - 2018-05-29 at 14.26.40.png
两种效果随意切换只需要改字段就可以实现,使用方便
屏幕快照 2018-05-29 下午2.26.50.png