117.info
人生若只如初见

SwiftUI 对 ViewState 的表达语法

SwiftUI 中的 ViewState 可以通过 @State 关键字来表示。

  1. 单个状态属性的定义和初始化:
@State private var isShowingSheet = false
  1. 在 View 中使用状态属性:
struct ContentView: View {
@State private var isShowingSheet = false
var body: some View {
VStack {
Button("Show Sheet") {
self.isShowingSheet = true
}
.sheet(isPresented: $isShowingSheet) {
SheetView()
}
}
}
}
  1. 在 View 中使用状态属性的值:
struct SheetView: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
VStack {
Text("Sheet View")
Button("Dismiss") {
self.presentationMode.wrappedValue.dismiss()
}
}
}
}

在上述示例中,isShowingSheet 是一个用于控制是否显示 sheet 的状态属性。当点击按钮时,它的值被设置为 true,从而显示 sheet。sheet 的显示状态由 isPresented 参数控制,它接受一个绑定的状态属性作为值。

在 SheetView 中,presentationMode 是一个用于控制 sheet 是否被隐藏的环境值。当点击按钮时,调用 self.presentationMode.wrappedValue.dismiss() 可以将 sheet 隐藏。

通过 @State$ 符号,SwiftUI 实现了一种简洁而直观的方式来处理和更新视图的状态。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fef53AzsLBwdQBVI.html

推荐文章

  • 在tvOS上使用SwiftUI的经验

    使用SwiftUI在tvOS上开发应用程序可以带来许多好处,例如更快的开发速度、更简洁的代码和更好的用户体验。以下是在tvOS上使用SwiftUI的一些经验: 了解tvOS设计原...

  • 怎么使用SwiftUI构建用户界面

    使用SwiftUI构建用户界面非常简单,以下是一些基本步骤: 创建一个新的SwiftUI视图,可以通过创建一个新的Swift文件并在其中定义一个结构体来实现。 struct Cont...

  • 如何创建自定义SwiftUI视图修饰符

    要创建自定义的SwiftUI视图修饰符,您可以定义一个自定义的修饰符函数,并在其中应用您想要的修饰效果。以下是一个简单的示例:
    import SwiftUI struct Cus...

  • SwiftUI中的状态管理方法是什么

    在SwiftUI中,可以通过以下几种方式来管理状态: 使用@State属性包装器:@State属性包装器用于在视图内部存储和管理状态。当状态发生变化时,视图会自动重新绘制...

  • JS 中怎么样判断 DOM 是否相等

    在 JavaScript 中,可以使用 === 运算符来判断两个 DOM 元素是否相等。例如:
    const element1 = document.getElementById("element1");
    const element...

  • CSS中的letter-spacing、word-spacing与white-space

    CSS中的letter-spacing、word-spacing和white-space是用来控制文本间距和空白的属性。
    letter-spacing属性用于设置字符之间的间距。可以使用负值来减小间距...

  • Android基础Binder详解

    Binder是Android系统中的一种进程间通信(IPC)机制,它允许不同的进程间进行通信和相互调用。在Android中,每个进程都有一个Binder驱动,用于管理和提供Binder对...

  • Elasticsearch 选主流程

    Elasticsearch选主流程是指在一个Elasticsearch集群中选择一个主节点的过程。以下是Elasticsearch选主的基本流程: 初始化:当一个节点启动时,它会试图加入已经...