SwiftUI - HStack, VStack 자식 뷰 넓이 똑같이 만들기
Swift UI 2022. 2. 24. 19:29

SwiftUI 에서 VStack 이나 HStack 을 사용할 때 자식 뷰들의 넓이 혹은 높이를 똑같이 맞춰주고 싶은 경우가 많다. 그럴 땐 다음과 같이 frame 을 지정해주도록 하자! VStack(spacing:0) { Text("안녕!!!!") .frame(maxHeight:.infinity) //maxHeight 속성을 .infinity 로 변경! .background(Color.blue) Text("월드!!!!\n\n\n\n\n\n") .frame(maxHeight:.infinity) //이하동문 .background(Color.red) } VStack 안의 Text 들의 높이가 똑같아 진 것을 확인할 수 있다. 만약 여기서 frame 속성을 뺀다면 위와 같이 높이가 서로 다른 것을 볼 수 있다...

Swift UI - Environment 객체
Swift UI 2022. 2. 14. 21:27

Swift UI - Observable 객체 Swift UI 상태 프로퍼티 - @State Swift UI 에서 뷰의 업데이트는 뷰와 결합된 데이터를 업데이트 할 때 일어난다. 이를 위해선 데이터와 뷰 사이에 게시자 - 구독자 관계를 구축하여 할 수 있다. 이를 forstudy.tistory.com Observable 객체는 특정 상태가 앱 내의 몇몇 뷰에 의해 사용되어야 할 경우에 적절하게 사용할 수 있다. 그러나 어떤 뷰에서 다른 뷰로 이동할 때 이동할 뷰에서도 동일한 Observable 객체에 접근해야 한다면, 대상 뷰로 Observable 객체에 대한 참조체를 전달해야 한다. 다음 코드 예제를 살펴보자 struct DemoDataView : View { @ObservedObject var demo..

Swift UI - Observable 객체
Swift UI 2022. 2. 14. 19:55

Swift UI 상태 프로퍼티 - @State Swift UI 에서 뷰의 업데이트는 뷰와 결합된 데이터를 업데이트 할 때 일어난다. 이를 위해선 데이터와 뷰 사이에 게시자 - 구독자 관계를 구축하여 할 수 있다. 이를 위해서 Swift UI 는 상태 프로 forstudy.tistory.com 이전 글에서 알아본 상태 프로퍼티는 선언된 뷰나 하위 뷰에서만 사용할 수 있다. 즉 다른 뷰로 이동하거나, 부모 뷰가 사라진다면 그 상태도 사라진다. 그렇다면 여러 뷰들이 동시에 접근해야 하는 영구적인 데이터의 경우는 어떻게 처리해야 할까? 이는 Observable 객체로 해결할 수 있다. Observable 객체는 ObservableObject 프로토콜을 따르는 클래스나 구조체의 형태를 취한다. Observable..

Swift UI 상태 프로퍼티 - @State
Swift UI 2022. 2. 14. 19:17

Swift UI 에서 뷰의 업데이트는 뷰와 결합된 데이터를 업데이트 할 때 일어난다. 이를 위해선 데이터와 뷰 사이에 게시자 - 구독자 관계를 구축하여 할 수 있다. 이를 위해서 Swift UI 는 상태 프로퍼티, Observable 객체, 그리고 Environment 객체를 제공하며, 이들 모두는 사용자 인터페이스의 모양과 동작을 결정하는 상태를 제공한다. Swift UI 에서 UI 는 코드 내에서 직접 업데이트하지 않고, 결합된 데이터가 변함에 따라 자동으로 뷰가 업데이튿 된다. struct ContentView: View { @State private var wifiEnabled = true @State private var userName = "" var body: some View { } } 상..