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 |
Tags
- UITextView
- combine
- ios
- uitableview
- map
- tableView
- rxswift
- 리팩토링
- RxCocoa
- 리펙토링
- Clean Code
- 스위프트
- swift documentation
- 애니메이션
- swiftUI
- Protocol
- Observable
- clean architecture
- uiscrollview
- ribs
- 클린 코드
- HIG
- Human interface guide
- 리펙터링
- SWIFT
- Refactoring
- Xcode
- MVVM
- collectionview
- UICollectionView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - SwiftUI] Rectangle, RoundedRectangle, Circle, Ellipse, Capsule 사용 방법 본문
iOS 기본 (SwiftUI)
[iOS - SwiftUI] Rectangle, RoundedRectangle, Circle, Ellipse, Capsule 사용 방법
jake-kim 2022. 10. 18. 22:53도형들은 모두 Shape를 준수
- 대표적인 예로 Rectangle을 보면 Shape를 준수
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
@frozen public struct Rectangle : Shape {
public func path(in rect: CGRect) -> Path
@inlinable public init()
public typealias Body
}
- Shape는 내부적으로 Animatable을 준수하고 있는 형태
- Shape는 path라는 메소드가 있는데, 이 메소드에서 특정 도형을 그리는 형태
- Shape, Animatable 관련 개념은 이전 포스팅 글 참고
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
public protocol Shape : Animatable, View {
func path(in rect: CGRect) -> Path
@available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *)
static var role: ShapeRole { get }
}
Rectangle, RoundedRectangle, Circle, Ellipse, Capsule
- 사용 방법은 모두 View처럼 선언하여 사용
- 아래 예제에서는 overlay를 붙여서, 도형에 텍스트를 추가한 코드
struct ContentView: View {
var body: some View {
VStack {
Group {
Rectangle()
.overlay { Text("Rectangle").foregroundColor(.white) }
RoundedRectangle(cornerSize: .init(width: 16, height: 16))
.overlay { Text("RoundedRectangle").foregroundColor(.white) }
Circle()
.overlay { Text("Circle").foregroundColor(.white) }
Ellipse()
.overlay { Text("Ellipse").foregroundColor(.white) }
Capsule()
.overlay { Text("Capsule").foregroundColor(.white) }
}
.foregroundColor(.blue)
Spacer()
}
.frame(maxWidth: 200)
}
}
'iOS 기본 (SwiftUI)' 카테고리의 다른 글
Comments