반응형
Hacking with Swift 사이트의 강좌 번역본입니다.
How to create different layouts using size classes
SwiftUI는 기본적으로 environment에서 사용할 수 있는 size classes를 지원합니다. 이를 사용하기 위해, 우선 다음과 같이, @Environment 객체를 만들어 그 값을 저장할 것입니다.
@Environment(\.horizontalSizeClass) var horizontalSizeClass
그리고나서 필요할때마다 프로퍼티의 값을 확인하며, 다음과 같이 .compact 또는 .regular size class를 찾습니다.
if horizontalSizeClass == .compact {
return Text("Compact")
} else {
return Text("Regular")
}
모든것을 종합해서, 다음과 같은 뷰를 만들 수 있습니다.
struct ContentView: View {
@Environment(\.horizontalSizeClass) var horizontalSizeClass: UserInterfaceSizeClass?
var body: some View {
if horizontalSizeClass == .compact {
return Text("Compact")
} else {
return Text("Regular")
}
}
}
Size classes는 컨텐츠에 VStack 또는 HStack을 사용해서 사용가능한 공간을 지능적으로 적용하도록 사용자 인터페이스를 만드는 멋진 방법입니다. 예를들어, 공간이 충분하는 경우에 수평으로 배치하지만, 공간이 제한될때 수직으로 배치합니다.
반응형
'SwiftUI > View layout' 카테고리의 다른 글
How to add horizontal and vertical scrolling using ScrollView (0) | 2019.11.18 |
---|---|
How to place content outside the safe area (0) | 2019.11.18 |
How to provide relative sizes using GeometryReader (0) | 2019.11.15 |
How to give a view a custom frame (0) | 2019.11.15 |
How to create views in a loop using ForEach (0) | 2019.11.15 |
How to return different view types (0) | 2019.11.14 |
How to change the order of view layering using Z index (0) | 2019.11.14 |
How to layer views on top of each other using ZStack (0) | 2019.11.14 |