
layoutPriority 에 대해 알아보도록 합시다.
layoutPriority
SwiftUI에서 뷰의 위치와 크기를 계산하는 방법과 .layoutPriority()를 사용하여 해당 프로세스를 변경하는 방법을 알아보도록 하겠습니다. 우선 간단하게 텍스트를 작성해보도록 하겠습니다.
struct ContentView: View {
var body: some View {
Text("서근 개발블로그!!")
}
}
- SwiftUI는 사용 가능한 모든 공간을
ContentView에 전달합니다 . ContentView에는TextView인 자식이 하나만 있습니다.ContentView는 사용 가능한 공간을TextView에 제안하고 크기를 계산하도록 요청합니다.TextView는 콘텐츠의 크기를 측정하여ContentView다시 전달합니다 .ContentView는 이제TextView크기를 감지하고 사용 가능한 공간의 중앙에 배치합니다.
이것이 SwiftUI 레이아웃 시스템이 작동하는 방식입니다. 항상 위의 네 단계를 적용합니다.
HStack 내부에 여러 형제 뷰가있는 텍스트를 만들어 볼께요.
HStack(spacing: 10) {
Text("나랏말싸미 듕귁에 달아 문자와로 서르 사맛디 아니할쎄")
Text("이런 전차로 어린 백셩이 니르고져 홇베이셔도")
Text("마참네 제 뜨들 시러펴디 몯핧 노미하니아 내 이랄 윙하야 어엿비너겨 새로 스믈 여듫 짜랄 맹가노니")
}
.lineLimit(1)
.padding()

SwiftUI의 모든 View layout은 기본적으로 우선 순위가 0입니다. SwiftUI에서는 .layoutPriority() 수정자를 사용하여 사용자 지정 레이아웃 우선 순위를 설정할 수 있습니다.
위 텍스트에 .layoutPriority() 수정자를 추가해서 우선순위를 설정해주겠습니다.
HStack(spacing: 10) {
Text("나랏말싸미 듕귁에 달아 문자와로 서르 사맛디 아니할쎄")
.layoutPriority(1)
Text("이런 전차로 어린 백셩이 니르고져 홇베이셔도")
Text("마참네 제 뜨들 시러펴디 몯핧 노미하니아 내 이랄 윙하야 어엿비너겨 새로 스믈 여듫 짜랄 맹가노니")
}
.lineLimit(1)
.padding()



위의 예에서 볼 수 있듯이.layoutPriority() 수정자를 사용 하여 레이아웃 프로세스의 순서를 변경합니다.
SwiftUI는 뷰 계층 구조에서 우선 순위가 가장 높기 때문에 HStack 내부의 최신 뷰로 크기 제안 프로세스를 시작합니다 .
읽어주셔서 감사합니다🤟
'SWIFTUI > Others' 카테고리의 다른 글
| SwiftUI : DarkMode 구현하기 - Environment (2) | 2021.04.14 |
|---|---|
| SwiftUI : Preview 레이아웃을 미리 보는방법 (2) | 2021.04.05 |
| SwiftUI : Redacted ( onAppear / disabled ) 콘텐츠 모자이크 (0) | 2021.03.07 |
| SwiftUI : Menu 버튼을 눌렀을 때 메뉴를 표시 (0) | 2021.01.30 |
| SwiftUI : Animation #2 (0) | 2021.01.26 |





