zl程序教程

您现在的位置是:首页 >  其他

当前栏目

View 基础组件(SwiftUI中文文档手册)

中文文档组件基础 View 手册 SwiftUI
2023-09-11 14:18:48 时间

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.

您通常会链接修饰符,每个修饰符都会包裹上一个修饰符的结果。例如,您可以使用修饰符将文本视图包装在具有给定宽度的不可见框中,以影响其布局,然后使用修饰符在其周围绘制轮廓: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点宽度将该视图包装到另一个不可见的视图中会影响复合视图的布局,但对边框没有影响。


主题

实施自定义视图

1、var body: Self.Body

视图的内容和行为。
需要。 提供了默认实现。

2、associatedtype Body : View

表示此视图主体的视图类型。
需要。

3、struct ViewBuilder

一个自定义参数属性,用于从闭包构造视图。


配置视图

4、布局

告诉视图如何通过调整其大小,位置,对齐方式,填充等在视图层次结构中进行排列。

5、辅助功能

使您的视图可供包括残疾人在内的广泛用户使用。

6、渲染图

影响系统绘制视图的方式,例如通过缩放或遮罩视图或应用图形效果。

7、造型

指示如何设置视图中包含的文本,控件和其他内容的样式。


提供互动

8、输入和事件

提供视图操作以响应用户输入和系统事件而执行。

9、View Presentation

定义视图以在指定条件下显示的其他视图。

10、State

访问视图首选项,并为子视图提供配置数据。


在Xcode中配置预览

11、func previewDevice(PreviewDevice?) -> some View

覆盖设备以进行预览。

12、func previewDisplayName(String?) -> some View

提供在编辑器中显示的用户可见名称。

13、func previewLayout(PreviewLayout) -> some View

覆盖预览容器的大小。

14、func previewContext© -> some View

声明预览的上下文。
贝塔


识别视图

15、func id(ID) -> some View

将视图的身份绑定到给定的代理值。

16、func equatable() -> EquatableView

当新值与旧值相同时,阻止视图更新其子视图。
Self符合时可用Equatable。


实施视图修改器

17、func modifier(T) -> ModifiedContent<Self, T>

将修改器应用于视图。

18、struct ModifiedContent

带有修饰符的值。
Content符合View和Modifier符合时可用。ViewModifier

19、struct EmptyModifier

空或标识修饰符。

20、 ViewModifier

您应用于视图的修改器或另一个视图修改器,产生原始值的不同版本。