在 SwiftUI 的框架下,建議使用 Apple 文件上寫的資料流。Action → State → View。讓資料的流動為單一方向,並讓 SwiftUI 替你進行 Binding 後的 UI 渲染工作。資料的流動可以參考下圖。
我們先來製作一個會隨著有沒有文字的輸入,會讓 Text 變化的簡單 View,程式碼如下。
//
// MemoInputView.swift
// TwStockTools
//
// Created by cm0679 on 2023/10/4.
//
import SwiftUI
struct MemoInputView: View {
@State var inputedText: String = ""
var displayText: String {
if inputedText.isEmpty {
return "請輸入文字"
} else {
return "你輸入的是: \(inputedText)"
}
}
var body: some View {
VStack {
Text(displayText)
TextField("請輸入交易心得", text: $inputedText)
}
.padding()
}
}
struct MemoInputView_Previews: PreviewProvider {
static var previews: some View {
MemoInputView()
}
}
完成後,你可以看到如果沒有文字,會在上面的文字出現「請輸入文字」
如果有 input,字的前面還可以加上一些變化。