iphoneX,iphoneX Max中tabbar重影问题解决
重影现象
方法一
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; for (UIView *tabBar in self.tabBarController.tabBar.subviews) { if([tabBar isKindOfClass:NSClassFromString(@"UITabBarButton")]){ [tabBar removeFromSuperview]; } } }
方法二
// 解决iphoneX在返回时候tabb出现重影的问题 - (void)viewWillLayoutSubviews{ [super viewWillLayoutSubviews]; for (UIView *view in self.tabBar.subviews) { if(![viewisKindOfClass:[MainTabBarclass]]) { [viewremoveFromSuperview]; } } }
原理:在iphoneX,iphoneX Max中,系统的控件(似乎是)只能隐藏,不能删除,再返回的时候,系统会自动判断,添加已删除的系统控件。
这两者的代码区别是,前者我们只删除一次,后者是在前者基础上再删除一次,以防出现的时候不能删除,在viewWillAppear中删除只是保证删除一次。所以要进行多次删除。
这两者的代码区别是,前者我们只删除一次,后者是在前者基础上再删除一次,以防出现的时候不能删除,在viewWillAppear中删除只是保证删除一次。所以要进行多次删除。