더 찾아보니 SwiftUI에선 더 간단하게 라이트모드, 다크모드를 지원할 수 있어 내용을 추가한다.
Asset Catalog에서 Color Set을 추가한 후에 프로젝트에서 사용할 색상의 이름을 정해준다.
라이트모드에서 사용할 색상을 Any Appearance에, 다크모드에서 지원할 색상을 Dark에 정의해주면 끝 ..
정말 간단하게 라이트모드와 다크모드를 동시에 지원할 수 있다.
사용할때에는 단순히 Asset에 지정해놓은 Color Set 네임을 사용하면 된다.
@Environment(\.colorScheme) var colorScheme: ColorScheme
을 통해 단말에 세팅된 모드를 알 수 있다.
static func getBackgroundColor(forScheme scheme: ColorScheme) -> Color {
let lightColor = Color.yellow
let darkColor = Color.blue
switch scheme {
case .light:
return lightColor
case .dark:
return darkColor
@unknown default: return lightColor
}
}
함수로 구현해서 사용할 수 있고
Color(colorScheme == .dark ? .yellow : .blue)
삼항연산자로 간단하게 사용할 수 있다.
테스트 결과 화면
참고 :
https://developer.apple.com/documentation/swiftui/environmentvalues/colorscheme
colorScheme | Apple Developer Documentation
The color scheme of this environment.
developer.apple.com
https://seons-dev.tistory.com/entry/CODE-DarkMode-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-Environment
'iOS > SwiftUI' 카테고리의 다른 글
[SwiftUI] 서브 뷰 그리기 (1) | 2024.06.18 |
---|---|
[SwiftUI] @State, @StateObject, @ObservedObject, @EnvironmentObject (2) | 2024.03.18 |