La UITabBar aumenta en altura para estar por encima del botón / línea de inicio, pero dibuja la subvista en su ubicación original y superpone el UITabBarItem sobre la subvista.
Como solución alternativa, puede detectar el iPhone X y luego reducir la altura de la vista en 32 píxeles para asegurarse de que la barra de pestañas se muestre en el área segura sobre la línea de inicio.
Por ejemplo, si estás creando tu TabBar, reemplaza programáticamente
self.tabBarController = [[UITabBarController alloc] init];
self.window.rootViewController = self.tabBarController;
Con este:
#define IS_IPHONEX (([[UIScreen mainScreen] bounds].size.height-812)?NO:YES)
self.tabBarController = [[UITabBarController alloc] init];
self.window.rootViewController = [[UIViewController alloc] init] ;
if(IS_IPHONEX)
self.window.rootViewController.view.frame = CGRectMake(self.window.rootViewController.view.frame.origin.x, self.window.rootViewController.view.frame.origin.y, self.window.rootViewController.view.frame.size.width, self.window.rootViewController.view.frame.size.height + 32) ;
[self.window.rootViewController.view addSubview:self.tabBarController.view];
self.tabBarController.tabBar.barTintColor = [UIColor colorWithWhite:0.98 alpha:1.0] ;
self.window.rootViewController.view.backgroundColor = [UIColor colorWithWhite:0.98 alpha:1.0] ;
NOTA: Esto podría ser un error, ya que el sistema operativo establece los tamaños de vista y el diseño de la barra de pestañas. Probablemente debería mostrarse según la captura de pantalla de Apple en las Pautas de interfaz humana del iPhone X aquí: https://developer.apple.com/ios/human-interface-guidelines/overview/iphone-x/