一种类型,代表应用程序用户界面的一部分,并提供用于配置视图的修饰符。
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.
您通常会链接修饰符,每个修饰符都会包裹上一个修饰符的结果。例如,您可以使用修饰符将文本视图包装在具有给定宽度的不可见框中,以影响其布局,然后使用修饰符在其周围绘制轮廓:frame(width:height:alignment:)border(_:width:)
Text("Title")
.frame(width: 100)
.border(Color.gray)
应用修饰符的顺序很重要。例如,上述代码产生的边框勾勒出框架的整个宽度。
文本视图的屏幕快照,显示字符串“ Title”,由
如果改为先应用边框,则边框会勾勒出文本视图的轮廓,该视图永远不会占用比呈现其内容所需的更多空间。
Text("Title")
.border(Color.gray) // Apply the border first this time.
.frame(width: 100)
用固定的100点宽度将该视图包装到另一个不可见的视图中会影响复合视图的布局,但对边框没有影响。
视图的内容和行为。
需要。 提供了默认实现。
表示此视图主体的视图类型。
需要。
一个自定义参数属性,用于从闭包构造视图。
告诉视图如何通过调整其大小,位置,对齐方式,填充等在视图层次结构中进行排列。
使您的视图可供包括残疾人在内的广泛用户使用。
影响系统绘制视图的方式,例如通过缩放或遮罩视图或应用图形效果。
指示如何设置视图中包含的文本,控件和其他内容的样式。
提供视图操作以响应用户输入和系统事件而执行。
定义视图以在指定条件下显示的其他视图。
访问视图首选项,并为子视图提供配置数据。
覆盖设备以进行预览。
提供在编辑器中显示的用户可见名称。
覆盖预览容器的大小。
声明预览的上下文。
贝塔
将视图的身份绑定到给定的代理值。
当新值与旧值相同时,阻止视图更新其子视图。
Self符合时可用Equatable。
将修改器应用于视图。
带有修饰符的值。
Content符合View和Modifier符合时可用。ViewModifier
空或标识修饰符。
您应用于视图的修改器或另一个视图修改器,产生原始值的不同版本。