Environment

EnvironmentValues - SwiftUI의 View를 구성하기 위한 환경 설정 관련 정보들이 담겨있는 곳

colorSchemetimeZonelocalelayoutDirectionsizeCategoryundoManager 등 기존 UITraitCollection에 저장되어 있었던 것들이 하나로 묶임

A뷰에서 다른 Environment 설정을 해 두면 A뷰의 하위 뷰는 A에서 설정한 Environment 설정을 따름

Untitled


A property wrapper that reads a value from a view’s environment.

View의 환경 에 대한 값을 읽는 Property wrapper

Overview

EnvironmentValues | Apple Developer Documentation

EnvironmentValues에 지정되어 있는, 또는 커스텀으로 만들 keypath로 설정 값을 읽어올 수 있음

@Environment(\\.colorScheme) var colorScheme: ColorScheme

// ...

if colorScheme == .dark { // Checks the wrapped value.
    DarkContent()
} else {
    LightContent()
}

이런 Property wrapper로 값을 get 할 수 있음 ( set 은 불가능 ) 기기에서 알아서 default 값을 넣어두든, 알아서 업데이트 하든 설정됨

만약, 몇몇 설정 가능한 값을 set 하고 싶다면, environment(_:_:) view modifier 사용 가능

Get an Observable Object