译自 Views as properties
更多内容欢迎关注公众号 「Swift花园」
在 SwiftUI 中,有许多方法可以让复杂的视图体系更易用,其中一种选择是使用属性 —— 将视图以属性的方式创建,然后在布局中使用这个属性。
举个例子,我们可以像下面这样以属性的方式创建了两个文本视图,然后在VStack中使用它们:
struct ContentView: View {
let motto1 = Text("Draco dormiens")
let motto2 = Text("nunquam titillandus")
var body: some View {
VStack {
motto1
motto2
}
}
}使用这些属性时,你还可以应用 modifier ,就像下面这样:
VStack {
motto1
.foregroundColor(.red)
motto2
.foregroundColor(.blue)
}以属性的方式创建视图有助于保持body 的代码更整洁 —— 它不仅避免了重复,还能支撑更复杂的代码。
Swift 不允许我们创建引用其他属性的存储属性,因为这会在对象创建时导致问题。这意味着创建一个绑定本地属性的TextField 会导致问题。
不过,你可以任意创建计算属性,就像下面这样:
var motto1: some View { Text("Draco dormiens") }我的公众号 这里有Swift及计算机编程的相关文章,以及优秀国外文章翻译,欢迎关注~
