Tengo una aplicación iOS, desde que actualicé a Xcode 13, noté algunos cambios peculiares en las barras de pestañas y navegación . En Xcode 13, ahora hay esta área negra en la pestaña y en las barras de navegación, y al iniciar la aplicación, la barra de pestañas ahora es negra, al igual que la barra de navegación. Por extraño que parezca, si la vista tiene una vista de desplazamiento o de tabla, si me desplazo hacia arriba, la barra de pestañas inferior recupera su color blanco y si me desplazo hacia abajo, la barra de navegación recupera su color blanco.
N:B: ya forcé el tema ligero de iOS 13 y superior:
if #available(iOS 13.0, *) { window!.overrideUserInterfaceStyle = .light }¿Alguien puede ayudarme o indicarme la dirección correcta para lidiar con esta peculiaridad?
¿Existe una solución simple para que Storyboard se reajuste o este es un caso en el que tengo que hacer cambios en cada vista manualmente?
Ejemplo de guión gráfico antes de la actualización:
y después:
Pantalla del simulador antes y después (respectivamente) de la actualización:
Mi problema se resuelve siguiendo, reemplace el color a la derecha que desea para la barra de navegación
¿Controlador de navegación? .navigationBar.backgroundColor = .lightGray
Para mí, tuve un problema con Navbar y TabBar, así que apliqué los estilos globalmente en AppDelegate
func configureNavigationBarAppearance() { let appearance = UINavigationBarAppearance() appearance.configureWithOpaqueBackground() appearance.backgroundColor = .white UINavigationBar.appearance().standardAppearance = appearance UINavigationBar.appearance().scrollEdgeAppearance = appearance } func configureTabBarAppearance() { let appearance = UITabBarAppearance() appearance.backgroundColor = .white UITabBar.appearance().standardAppearance = appearance UITabBar.appearance().scrollEdgeAppearance = appearance }Puede hacer esto en los guiones gráficos seleccionando la barra de pestañas y en el inspector de atributos, seleccionando la apariencia estándar y del borde de desplazamiento, configurando ambas configuraciones como con iOS 13 y para fuentes o colores personalizados, debe cambiar las apariencias de diseño estándar apiladas a personalizadas y establecer los atributos
Para la barra de navegación, configura las apariencias estándar y de borde de desplazamiento de manera similar en el Inspector de atributos, pero esto se ha mencionado en otra parte en el desbordamiento de pila.
Acerca de la barra de navegación es negra, intente hacerlo:
let appearance = UINavigationBarAppearance() appearance.configureWithOpaqueBackground() appearance.backgroundColor = .red appearance.titleTextAttributes = [.font: UIFont.boldSystemFont(ofSize: 20.0), .foregroundColor: UIColor.white] // Customizing our navigation bar navigationController?.navigationBar.tintColor = .white navigationController?.navigationBar.standardAppearance = appearance navigationController?.navigationBar.scrollEdgeAppearance = appearanceEscribí un nuevo artículo hablando de eso.
https://medium.com/@eduardosanti/uinavigationbar-is-black-on-ios-15-44e7852ea6f7
Después de la actualización a XCode 13 y iOS 15, también enfrenté algunos problemas con la barra de pestañas con el color de fondo de la barra y el color del texto de los elementos para diferentes estados. La forma en que lo arreglé:
if #available(iOS 15, *) { let tabBarAppearance = UITabBarAppearance() tabBarAppearance.backgroundColor = backgroundColor tabBarAppearance.stackedLayoutAppearance.selected.titleTextAttributes = [.foregroundColor: selectedItemTextColor] tabBarAppearance.stackedLayoutAppearance.normal.titleTextAttributes = [.foregroundColor: unselectedItemTextColor] tabBar.standardAppearance = tabBarAppearance tabBar.scrollEdgeAppearance = tabBarAppearance } else { UITabBarItem.appearance().setTitleTextAttributes([.foregroundColor: selectedItemTextColor], for: .selected) UITabBarItem.appearance().setTitleTextAttributes([.foregroundColor: unselectedItemTextColor], for: .normal) tabBar.barTintColor = backgroundColor }en primer lugar, el problema se debe a que al desmarcar translúcido lo arreglé eligiendo la apariencia de la barra de navegación desde el borde de desplazamiento del inspector de atributos, lo solucionará, vea esta captura de pantalla, por favor