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 |
Tags
- uitableview
- map
- 애니메이션
- 리펙토링
- swift documentation
- Xcode
- tableView
- 클린 코드
- HIG
- Clean Code
- Refactoring
- Observable
- MVVM
- 리팩토링
- UITextView
- ios
- clean architecture
- rxswift
- Protocol
- UICollectionView
- swiftUI
- ribs
- uiscrollview
- 스위프트
- Human interface guide
- collectionview
- RxCocoa
- SWIFT
- 리펙터링
- combine
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - SwiftUI] HStack, VStack에서의 alignment 개념 (center, top, bottom, firstTextBaseline, lastTextBaseline) 본문
iOS 응용 (SwiftUI)
[iOS - SwiftUI] HStack, VStack에서의 alignment 개념 (center, top, bottom, firstTextBaseline, lastTextBaseline)
jake-kim 2025. 1. 28. 01:09alignement 개념
- 보통 HStack, VStack을 사용하다보면 alignment 값이 있는데 대부분은 default(.center)로 두고 사용하지만 이 값을 잘 사용하면 다양한 뷰 배치를 편리하게 할 수 있는 장점이 존재
- 속성을 알아보기 전에, HStack(alignment:)에서 alignment의 의미를 파악하는것이 가장 중요
- alignment 의미?
- HStack은 뷰들을 왼쪽에서 오른쪽으로 채워주는 컨테이너이며, 이미 왼쪽에서 오른쪽이라는 Horizontal 의미를 가지고 있지만, Vertical의 의미는 정해지지 않았으므로 alignment에서 정하는 것
- HStack에서 alignment는 HStack의 y좌표를 의미
- alignement의 디폴트 값은 center이므로 아래와 같이 작성하면 콘텐츠안에 있는 뷰의 길이가 길어질땐, HStack의 y좌표를 기준으로 중앙으로 배치
struct ContentView: View {
var body: some View {
HStack {
Text("1234")
Text("jake iOS 앱 개발 알아가기\n긴 문자열인 경우와\n개행이 들어간 경우")
}
.background(Color.gray.opacity(0.3))
}
}
- 만약 "1234" 문구를 좌측상단에 고정하고 싶은 경우?
- alignment를 firstTextBaseline으로 수정
- top은 단어 그대로 HStack뷰의 y좌표 0을 의미
HStack(alignment: .top)
alignment옵션 center, top, bottom 알아보기
- 이 5가지 속성 모두 HStack의 y좌표를 의미
- center: HStack의 y좌표 중앙
- top: HStack의 y시작 좌표인 0
- bottom: HStack의 y끝 좌표 (=HStack 높이와 동일)
alignment옵션 firstTextBaseline, lastTextBaseline 알아보기
- 순서의 의미와 Text에 대한 정렬 옵션
- 위에서 알아본 3가지와는 다르게 "first"라는 순서의 의미와 "Text"에 관한 특정 뷰가 존재
- firstTextBaseline: HStack안에 첫번째로 등장하는 Text에 맞추라는 의미
- lastTextBaseline: HStack안에 마지막으로 등장하는 Text에 맞추라는 의미
- firstTextBaseline을 top과 비교하여 이해하기
- 둘 다 상단에 배치되지만, firstTextBaseline은 HStack에 들어간 첫번째 Text를 기준으로 나머지 뷰들의 y좌표가 결정
struct ContentView: View {
var body: some View {
VStack(spacing: 12) {
HStack(alignment: .top) {
Text("1234").font(.largeTitle)
Text("jake iOS 앱 개발 알아가기\n긴 문자열인 경우와\n개행이 들어간 경우")
}
.background(Color.gray.opacity(0.3))
HStack(alignment: .firstTextBaseline) {
Text("1234").font(.largeTitle)
Text("jake iOS 앱 개발 알아가기\n긴 문자열인 경우와\n개행이 들어간 경우")
}
.background(Color.gray.opacity(0.3))
}
}
}
top | firstTextBaseline |
|
- lastTextBaseline을 bottom과 비교하여 이해하기
- 둘 다 하단에 배치되지만, lastTextBaseline은 HStack에 추가된 마지막 Text를 기준으로 나머지 뷰들의 y좌표가 결정
struct ContentView: View {
var body: some View {
VStack(spacing: 12) {
HStack(alignment: .bottom) {
Text("1234")
Text("jake iOS 앱 개발 알아가기\n긴 문자열인 경우와\n개행이 들어간 경우").font(.largeTitle)
}
.background(Color.gray.opacity(0.3))
HStack(alignment: .lastTextBaseline) {
Text("1234")
Text("jake iOS 앱 개발 알아가기\n긴 문자열인 경우와\n개행이 들어간 경우").font(.largeTitle)
}
.background(Color.gray.opacity(0.3))
}
}
}
bottom | firstTextBaseline |
(VStack의 alignment도 HStack과 원리가 동일하므로 생략)
'iOS 응용 (SwiftUI)' 카테고리의 다른 글
[iOS - SwiftUI] 키보드와 스크롤 뷰 (키보드 올라올 때 TextField와의 최소 거리만큼 스크롤 방법, safeAreaPadding) (0) | 2025.01.23 |
---|---|
[iOS - SwiftUI] 키보드와 safeArea (#키보드 내려갈때 흔들리는 현상, ignoresSafeArea) (0) | 2025.01.21 |
[iOS - SwiftUI] gesture, simultaneousGesture 동작 개념 (SwiftUI 제스처의 특성) (0) | 2025.01.16 |
[iOS - SwiftUI] fixedSize 개념 (#내부 컨텐츠 크기만큼 크기 조절 방법) (0) | 2025.01.14 |
[iOS - SwiftUI] 1. Canvas 개념 (그림 그리기, Path) (1) | 2024.12.31 |
Comments