ios - 在 SwiftUI 中显示一个空 View

标签 ios swift macos swiftui

在 SwiftUI 中,经常需要根据某些条件显示“空” View ,例如:

struct OptionalText: View {
  let text: String?

  var body: some View {
    guard let text = text else { return }

    return Text(text) 
  }
}

不幸的是,由于 guard 的主体,这不能编译。必须返回一些 View ,即 text 时的“空” View 是 nil .应该如何重写此示例,以便在 text 时编译并呈现“空” View 是 nil ?

最佳答案

你必须返回一些东西。如果在某些情况下您不想显示任何内容,请“显示”... EmptyView ;)

var body: some View {
    Group {
        if text != nil {
            Text(text!)
        } else {
            EmptyView()
        }
    }
}

SwiftUI DSL 将要求您将 if/else 包装在 Group 中。并且 DSL 没有 guard /if let 命名法。

关于ios - 在 SwiftUI 中显示一个空 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60988527/

相关文章:

ios - 类型 'String' 不符合 'SequenceType' 的协议(protocol)

iphone - 如何将核心数据导出到 CSV

ios - 使用 Swift 在 Xcode 中进行异步 UI 测试

ios - 使用自定义 UICollectionViewLayout 的 UICollectionView 中的部分标题

ios - Mac 催化剂版本

css - 用于离线开发的本地 URL 回退

iphone - iOS:首屏显示图像

ios - 在 ViewController 中初始化 UIWebView 的问题

ios - let 声明需要一个初始化表达式

ios - 为 iOS 与 OSX 启动 Swift REPL