Drawing 프로젝트를 시작합니다. Path와 Shape에 대해 다루네요.
Creating custom paths with SwiftUI
- Path는 파라미터로 CGPoint를 받습니다.
- AutoLayout처럼 다루고 싶다면 GeometryReader를 이용해 직접 계산해야 합니다.
- Path의 시작점과 마지막점을 자동으로 연결해주지 않기 때문에, 라인을 한번 더 그리거나 StrokeStyle을 사용해야 합니다.
Paths vs shapes in SwiftUI
- Shape은 Path로 구현되어 있습니다.
- 하지만 path(in:) 함수를 통해 rect를 받을 수 있기 때문에, AutoLayout처럼 처리하는 것이 용이합니다.
- Path의 시작점과 마지막점을 자동으로 연결해주지 않는 것은 동일합니다.
- SwiftUI의 Angle은 우리가 일반적으로 생각하는 것과 약간 다릅니다. 0도는 12시 방향에서 시작하는 것이 아니라 3시 방향에서 시작하며, 시계 방향이라는 것도 반대방향입니다. SwiftUI의 좌표 체계가 (bottom-left corner가 아닌) top-left corner를 기준으로 하기 때문이라고 합니다.
Adding strokeBorder() support with InsettableShape
- Stroke를 Shape 안쪽에 그리기도록 하기 위해선 InsettableShape protocol을 conform해야 합니다.
- inset(by:)의 파라미터로 넘어오는 amount를 저장해서 Path를 그릴 때 보정하는 방식인데... 애초에 amount를 InsettableShape이 어떻게 알고 넣어주는지 잘 이해가 안됩니다. Arc가 구현한 해당 인터페이스를 보면, amount가 한번에 정확히 호출되는 것도 아닌 것 같습니다.
www.hackingwithswift.com/100/swiftui/43
댓글 영역