web-dev-qa-db-ja.com

SwiftUIで空のビューを表示する

SwiftUIでは、次のような条件に基づいて「空の」ビューを表示する必要があることがよくあります。

struct OptionalText: View {
  let text: String?

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

    return Text(text) 
  }
}

残念ながら、これはコンパイルされません。guardの本体はビューを返す必要があるためです。つまり、textnilの場合は「空の」ビューです。 textnilのときに「空の」ビューをコンパイルしてレンダリングするように、この例をどのように書き直す必要がありますか?

3
Max Desiatov

Xcode 12ベータ2以降、Groupビューは不要になり、if let宣言がサポートされているため、結果のbodyはもう少し簡潔にすることができます。

var body: some View {
    if let text = text {
        Text(text)
    } else {
        EmptyView()
    }
}
0
Max Desiatov