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()를 불러와야 합니다.