@State // @State : 값의 변화를 감지해서 뷰에 적용
private var isActivated: Bool = false
self.isActivated.toggle() // true이면 false / false이면 true로 변환시켜줌
// SwiftUI가 아예 로직 자체를 함수로 만들어 놓은 것
@Binding
var isActivated: Bool
init(isActivated: Binding<Bool> =
.constant(false)) {
.isActivated = isActivated
}
// ContentView에서 MyVstackView를 호출할 때
MyVstackView(isActivated: $isActivated) //그럼 서로 연결됨
import WebKit
UIKit에 있는 코드를 SwiftUI에서 어떻게 사용하느냐
No StoryBoard Setting강의도 보기
인터넷 허가 : info.plist -> App Transport Security Setting -> Allow Arbitrary Loads -> Value:Yes
SwiftUI는 구조가 class가 아니라 struct로 되어 있음
// MyWebview.swift
import SwiftUI
import WebKit
// UIViewRepresentable : uikit의 uiview를 사용할 수 있도록 한다.
struct MyWebview: UIViewRepresentable {
// ui view 만들기
// 업데이트 ui view
// -> swiftui에서는 데이터가 변경될 때 view를 다시 그리는데
// 그걸 ui view에서는 업데이트 해줘야함
}
//DateFormatter
static let dateFormat: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "YYYY년 M월 d일"
return formatter
}()
var today = Date()
Text("오늘의 날짜 : \(today, formatter: ContentView.dateFormat)")
stack 쌓는다.
VStack(수직), HStack(수평), ZStack(뷰를 겹치기)
ZStack : view를 중첩. 위로 덮어 씌우는 것.
.zIndex : 깊이 순서를 줄 수 있음.
스택이 중요한 이유 : 가중치를 주면서 뷰를 블럭 쌓듯이 쌓는 것.