Hola, les saluda Luis y en esta ocasión les traigo este post.
Detecta cuando tus usuarios cambian de modo claro a oscuro en iOS 13
Puede detectar el cambio de modo claro a oscuro (y viceversa) en iOS 13 con una clave de entorno llamada ColorScheme
.
ColorScheme
enumera las opciones de configuración para el modo oscuro y claro. Utilice este valor para ajustar los colores dentro de su aplicación, o incluso cambiar algunas otras variables. Por ejemplo, modifiqué un texto para reflejar el modo actual de iPhone («Modo claro» o «Modo oscuro»)
Primero, necesita crear variables constantes para sus colores claros y oscuros. Puede agregarlos a su vista de contenido, crear una extensión o estructura para ellos, o agregar los colores fuera de estructuras y clases.
let gradientStart = Color(red: 239.0 / 255, green: 120.0 / 255, blue: 221.0 / 255) let gradientStartDark = Color(red: 95.0 / 255, green: 169.0 / 255, blue: 244.0 / 255) let gradientEnd = Color(red: 239.0 / 255, green: 172.0 / 255, blue: 120.0 / 255) let gradientEndDark = Color(red: 79.0 / 255, green: 178.0 / 255, blue: 141.0 / 255) let toggleTextcolorLight = Color(red: 227.0 / 255, green: 227.0 / 255, blue: 227.0 / 255) let toggleTextcolorDark = Color(red: 34.0 / 255, green: 38.0 / 255, blue: 58.0 / 255) let textColorDark = Color(red: 238.0 / 255, green: 238.0 / 255, blue: 238.0 / 255) let textColorLight = Color(red: 41.0 / 255, green: 45.0 / 255, blue: 67.0 / 255) let bgColorDark = Color(red: 41.0 / 255, green: 45.0 / 255, blue: 67.0 / 255) let bgColorLight = Color(red: 238.0 / 255, green: 238.0 / 255, blue: 238.0 / 255)
Ahora puede agregar el ColorScheme
variable a la vista de contenido y utilícela para ajustar la vista a su gusto.
@Environment(.colorScheme) var colorScheme
Puede cambiar la forma o el color de fondo de una vista, como el siguiente código:
.background(colorScheme == .light ? bgColorLight: bgColorDark)
También puede cambiar otras variables, como el texto a continuación:
Text(colorScheme == .light ? "Light Mode" : "Dark Mode")
Puede obtener resultados similares a la imagen de arriba a la izquierda con el siguiente fragmento de código:
import SwiftUI struct ContentView: View { @Environment(\.colorScheme) var colorScheme var body: some View { ZStack { ZStack(alignment: .top) { ShapeView().offset(x: -80, y : -389).shadow(radius: 12) } VStack { Text(colorScheme == .light ? "Light Mode" : "Dark Mode").font(.system(size: 40)).bold().foregroundColor(colorScheme == .light ? textColorLight : textColorDark ) }.offset(y: 50).padding() ShapeView().offset(x: 80, y : 389).shadow(radius: 12) }.background(colorScheme == .light ? bgColorLight: bgColorDark) .edgesIgnoringSafeArea(.all) } }
Para obtener el código completo del proyecto, haga clic aquí.
Espero que te sea útil.
[…] Si quieres saber cómo se hace por medio de código, puedes hacerlo con ayuda de este post. […]
Gracias