SwiftUI:将视图作为属性
- 2020 年 4 月 1 日
- 筆記
有很多方法可以简化在SwiftUI中使用复杂的视图层次结构,一种选择是使用属性——将视图创建为您自己的视图的属性,然后在布局中使用该属性。
例如,我们可以创建两个像这样的文本视图作为属性,然后在VStack
中使用它们:
struct ContentView: View { let motto1 = Text("Draco dormiens") let motto2 = Text("nunquam titillandus") var body: some View { VStack { motto1 motto2 } } }
您甚至可以在使用这些属性时直接将修饰符应用于这些属性,如下所示:
VStack { motto1 .foregroundColor(.red) motto2 .foregroundColor(.blue) }
将视图创建为属性可以帮助您使body
代码更清晰——不仅有助于避免重复,而且还可以使用body
属性之外的复杂代码。
Swift不允许我们创建一个引用其他存储属性的存储属性,因为在创建对象时会引起问题。这意味着尝试创建绑定到本地属性的TextField
将导致问题。
但是,您可以根据需要创建计算属性,如下所示:
var motto1: some View { Text("Draco dormiens") }
Previous: 环境修饰符 |
Hacking with iOS: SwiftUI Edition |
Next: 视图拆分与组合 |
---|