【发布时间】:2021-07-07 15:14:30
【问题描述】:
我在 SwiftUI 中使用许多不同的自定义视图都遇到过这个问题,那么为什么会有这样的代码
struct HeaderText: View {
@State var text: String
@State var color: Color
var body: some View {
Text(text)
.font(.custom("Gilroy-SemiBold", size: 20))
.foregroundColor(color)
}
}
text 或 color 更改时不会自动更新。例如,如果我有这样的视图
struct ContentView: View {
@State var text = "Hello"
var body: some View {
VStack {
HeaderText(text: self.text, color: .black)
Button("Change Text") {
self.text = "Goodbye"
}
}
}
}
我原以为视图会使用新文本进行更新,但事实并非如此。我知道您可以使用@Binding 完成此操作,但我正在寻找更优雅的解决方案,类似于Text 的工作方式。我只是使用这些视图和structs 作为示例,所以我知道这些可能不是一般的最佳做法。
感谢您的帮助!
【问题讨论】:
标签: ios swift iphone swiftui uikit