Shadow
enum Level
그림자의 강도를 정의하는 열거형입니다.
-
Overview
각 레벨은 키 그림자와 앰비언트 그림자의 조합으로 구성되어 있으며, 레벨이 높을수록 더 강하고 넓은 그림자가 적용됩니다.
case large
큰 그림자
case medium
중간 크기 그림자
case none
그림자 없음
case small
작은 그림자
case xlarge
매우 큰 그림자
case xsmall
매우 작은 그림자
extension ShapeStyle
func shadow(Shadow.Level) -> some ShapeStyle
디자인 시스템 그림자(앰비언트 + 키)를 analytic drop 그림자로 적용한 ShapeStyle을 반환합니다.
-
Parameters
-
Return Value
그림자가 적용된
ShapeStyle -
Discussion
Shape의fill에 사용하면 그림자가 Shape 지오메트리로부터 직접 그려져 오프스크린 렌더링 패스가 발생하지 않습니다. 그림자를 그릴 표면의 모양을 알 수 있는 경우(카드·버튼·둥근 컨테이너 등)에는 임의 콘텐츠에 적용하는View.shadow(_:)대신 이쪽을 사용해 GPU 합성 비용을 줄이세요.
extension View
func shadow(Shadow.Level) -> some View
현재 뷰에 그림자를 적용합니다.
-
Parameters
-
Return Value
그림자가 적용된 뷰
-
Discussion
지정된 레벨의 그림자를 뷰에 적용하여 깊이감을 줍니다. 키 그림자와 앰비언트 그림자가 조합되어 자연스러운 그림자 효과를 만듭니다.
Important
이 API는 임의의 콘텐츠에 그림자를 적용하므로, 시스템이 콘텐츠의 실루엣을 알기 위해 오프스크린 렌더링 패스를 발생시킵니다(특히
clipShape/머티리얼과 함께 쓰일 때). 그림자를 그릴 표면의 모양을 알 수 있다면Shape의fill에 적용하는ShapeStyle.shadow(_:)를 사용해 오프스크린을 피하세요.