Search

[SwiftUI] drawingGroup()

SwiftUI

drawingGroup()

view를 렌더링 하기 전에 view의 하위 트리를 만들어 납작해지게 만듭니다.
drawingGroup() modifer는 최종 표시 전에 뷰의 내용을 offscreen 이미지로 결합합니다.
offscreen 구성은 애플의 고성능 그래픽 프레임워크인 Metal을 사용하여 복잡한 View를 렌더링하는데 있어 인상적으로 속도를 향상시켰습니다.
많은 수의 gradient, shadow 및 기타 효과를 사용하다보면 성능 문제가 발생할 가능성이 크기 때문에 그럴때는 drawingGroup()을 생각하세요.!
view의 내용은 단일 비트맵으로 구성되며, 비트맵은 뷰 대신에 표현 됩니다.
Off-Screen Rendering
비트맵 방식
Metal
VStack { ZStack { Text("DrawingGroup") .foregroundColor(.black) .padding(20) .background(Color.red) Text("DrawingGroup") .blur(radius: 2) } .font(.largeTitle) .compositingGroup() .opacity(1.0) } .background(Color.white) .drawingGroup()
Swift
복사
 drawingGroup()은 성능 문제를 해결할 수 있는 방법이지만 자주 사용해선 안됩니다. offscreen render pass를 추가하는 것은 속도를 느려지게 만듭니다. 따라서 실제 성능 문제가 발생할 때까지 기다린 후에 drawingGroup()를 불러와야 합니다.