Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Observable
- map
- uiscrollview
- swift documentation
- Human interface guide
- ios
- swiftUI
- clean architecture
- 스위프트
- 리펙터링
- MVVM
- RxCocoa
- Xcode
- UITextView
- collectionview
- 애니메이션
- 리팩토링
- Refactoring
- uitableview
- tableView
- Protocol
- ribs
- UICollectionView
- 클린 코드
- Clean Code
- 리펙토링
- SWIFT
- rxswift
- combine
- HIG
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - SwiftUI] 1. Canvas 개념 (그림 그리기, Path) 본문
1. Canvas 개념 (그림 그리기, Path)
2. Canvas 사용 방법 (fill, stroke)
Canvas 개념
- SwiftUI에서 2D 그래픽을 그리기 위해 사용되는 뷰
- View타입이므로 아래처럼 선언하여 사용이 가능
- 인수로 주어지는 context와 size를 사용하여 그림을 그리는 것
struct ContentView: View {
var body: some View {
Canvas(
opaque: true,
colorMode: .linear,
rendersAsynchronously: false
) { context, size in
context.opacity = 0.3
...
}
.frame(width: 300, height: 500)
}
}
Canvas 컴포넌트
- Canvas를 선언하고 파라미터에 값을 넣어서 초기화
- opaque: 불투명도 여부이며 true이면 불투명이라 뒷배경이 안보여짐 (디폴트는 false)
- colorMode: 애플의 설명에 따르면 A working color space and storage format of the canvas 라고 되어 있으며, linear와 nonLinear 속성이 있는데 linear는 현실에 가까운 방식이며 nonLinear는 현실에 가깝진 않지만 더욱 화질이 개선된 형태로 보여지는 방식 (디폴트는 .nonLinear)
- rendersAsynchronously: async로 동작하면 성능향상에 도움이 되지만 즉각적으로 그려지지 않는 단점이 존재 (디폴트는 false)
Canvas(
opaque: true,
colorMode: .linear,
rendersAsynchronously: false
) { context, size in
// TODO...
}
.frame(width: 300, height: 500)
이후 fill과 stroke를 사용하여 그림을 그리는 방법은 다음 글에서 계속..
* 참고
'iOS 응용 (SwiftUI)' 카테고리의 다른 글
[iOS - swift] 플러그인 패턴 (plugin pattern) (1) | 2024.12.27 |
---|---|
[iOS - swift] ToggleButton 만드는 방법 (#UIKit, #CheckBox) (0) | 2024.12.24 |
[iOS - SwiftUI] LayoutPriority 개념 (뷰 우선순위) (0) | 2024.12.17 |
[iOS - SwiftUI] 설계 관점에서 클로저를 이해하며 잘 사용하기 (클로저를 잘 사용하는 방법, 위임하기) (0) | 2024.11.28 |
[iOS - SwiftUI] 뷰를 주입 받는 형태의 커스텀 뷰 만드는 방법 (custom view에 View 주입하는 테크닉) (0) | 2024.11.26 |
Comments