Merhabalar bu yazımda SwiftUI ile birlikte uygulamalarımızda dark ve light tema için elementlere renk ayarlamamızı kolaylaştıracak bir kısa yol paylaşacağım.
SwiftUI ile kullanarak nesnelere doğrudan özellik ekleyebildiğimiz ViewModifier yardımı ile basit bir extension fonksiyonu kullanarak renk ayarlama işlemini kolaylaştıracağız. Dilerseniz sizde bu yöntem ile farklı nesnelere farklı özellikler kazandırabilirsiniz.
struct ContentView: View { var body: some View { Text("Hello, world!") .foregroundColor(light: .black, dark: .white) } }
struct AdaptiveForegroundModifier: ViewModifier { @Environment(\.colorScheme) private var colorScheme var lightColor: Color var darkColor: Color func body(content: Content) -> some View { content.foregroundColor(resultColor) } private var resultColor: Color { switch colorScheme { case .light: return lightColor case .dark: return darkColor @unknown default: return lightColor } } }
extension View { func foregroundColor(light: Color, dark: Color) -> some View { modifier(AdaptiveForegroundModifier(lightColor: light, darkColor: dark)) } }
İlk Yorumu Siz Yapın