View 是什么
一种类型,代表应用程序用户界面的一部分,并提供用于配置视图的修饰符。
protocol View
总览
您可以通过声明符合View协议的类型来创建自定义视图。实现所需的body计算属性,以提供自定义视图的内容。
struct MyView: View {
var body: some View {
Text("Hello, World!")
}
}
通过将SwiftUI提供的一个或多个原始视图(如上Text例中的实例)以及您定义的其他自定义视图组合到视图的层次结构中,以组装视图的主体。
该View协议提供了一个大组修饰符的,定义为协议中的方法默认实现,您使用定位和配置的观点在您的应用程序的布局。修饰符通常通过将您调用它们的视图实例包装在具有指定特征的另一个视图中来工作。例如,将opacity(_:)修改器添加到文本视图会返回具有一定透明度的新视图:
Text("Hello, World!")
.opacity(0.5) // Display partially transparent text.
修饰符的效果通常会传播到任何未显式覆盖修饰符的子视图。例如,一个VStack实例本身仅起到垂直堆叠其他视图的作用,并且没有要显示的文本。因此,font(_:)您应用于堆栈的修饰符对堆栈本身没有影响。但是font修饰符确实适用于堆栈的任何子视图,其中一些可能显示文本。另一方面,您可以通过在特定的子视图中添加另一个修改器来局部覆盖堆栈的修改器:
VStack {
Text("Title")
.font(.headline) // Override the font of this one view.
Text("First body line.")
Text("Second body line.")
}
.font(.body) // Set a default for text in the stack.
您通常会链接修饰符,每个修饰符都会包裹上一个修饰符的结果。例如,您可以使用修饰符将文本视图包装在具有给定宽度的不可见框中,以影响其布局,然后使用修饰符在其周围绘制轮廓:
Text("Title")
.frame(width: 100)
.border(Color.gray)
应用修饰符的顺序很重要。例如,以上代码产生的边框勾勒出框架的整个宽度。
显示字符串“ Title”的文本视图的屏幕快照,由
如果改为先应用边框,则边框会勾勒出文本视图的轮廓,该视图永远不会占用比呈现其内容所需的更多空间。
Text("Title")
.border(Color.gray) // Apply the border first this time.
.frame(width: 100)
用固定的100点宽度将该视图包装到另一个不可见的视图中会影响复合视图的布局,但对边框没有影响。
文档地址
https://developer.apple.com/documentation/swiftui/view
加入我们一起学习SwiftUI
QQ:3365059189
SwiftUI技术交流QQ群:518696470