【发布时间】:2021-05-25 17:52:21
【问题描述】:
我有一个简单的View叫做TextView,TextView的类型自然是View,我想对TextView进行修改 喜欢 .foregroundColor(Color.red) 并再次将其替换为自身!据我了解,我的 TextView 是 View 类型,应该可以正常工作,因为该类型不是 Text 但我也理解 SwiftUI 的抱怨,它说不能为 some 赋值查看 键入查看。我喜欢为解决问题做一些修正,我也不想添加另一个初始化器作为 foregroundColor。
import SwiftUI
struct ContentView: View {
@State private var myTextView: TextView?
var body: some View {
if let unwrappedMyTextView = myTextView {
unwrappedMyTextView
}
Button ("update") {
myTextView = TextView(stringOfText: "Hello, world!")//.foregroundColor(Color.red)
}
.padding()
}
}
struct TextView: View {
let stringOfText: String
init(stringOfText: String) {
self.stringOfText = stringOfText
}
var body: some View {
return Text(stringOfText)
}
}
【问题讨论】:
-
为什么不这样使用呢?
if let unwrappedMyTextView = myTextView { unwrappedMyTextView.foregroundColor(Color.red) } -
谢谢,有很多方法,我的意思是替换或更新,不完全给出红色前景颜色
-
然后可以在颜色函数中添加条件。这不是用@State 替换整个视图的好方法。
标签: swiftui