LoginSignup
20
12

【SwiftUI】空を表すViewが標準コンポーネントとして提供された!

Posted at

はじめに

WWDC23をリアルタイムで見た影響でめっちゃ寝不足です笑
SwiftUIでiOS17から使用できるAPIが公開されました。

その中にContentUnavailableViewというものがありました。

どのようなもの?

アプリのコンテンツがユーザーから利用できないときに表示する、ラベルと追加コンテンツで構成されるインターフェース

どんなUI?

Simulator Screenshot - iPhone 14 Pro - 2023-06-06 at 17.01.56.png Simulator Screenshot - iPhone 14 Pro - 2023-06-06 at 17.02.27.png

実装(テンプレ)

最小

import SwiftUI

struct ContentView: View {
    var body: some View {
        ContentUnavailableView.search
    }
}

スクリーンショット 2023-06-06 17.05.44.png

検索ワードを指定する

import SwiftUI

struct ContentView: View {
    var body: some View {
        ContentUnavailableView.search(text: "SNQ-2001")
    }
}

スクリーンショット 2023-06-06 17.06.22.png

実装(カスタム)

最小

import SwiftUI

struct ContentView: View {
    var body: some View {
        ContentUnavailableView {
            Label("No Mail", systemImage: "tray.fill")
        }
    }
}

スクリーンショット 2023-06-06 17.10.34.png

詳細情報をつける

import SwiftUI

struct ContentView: View {
    var body: some View {
        ContentUnavailableView {
            Label("No Mail", systemImage: "tray.fill")
        } description: {
            Text("New mails you receive will appear here.")
        }
    }
}

スクリーンショット 2023-06-06 17.11.10.png

ボタンをつける

import SwiftUI

struct ContentView: View {
    var body: some View {
        ContentUnavailableView.init {
            Label("No Mail", systemImage: "tray.fill")
        } description: {
            Text("New mails you receive will appear here.")
        } actions: {
            Button {
                print("更新しました")
            } label: {
                Label("Reload", systemImage: "arrow.clockwise")
            }
        }
    }
}

スクリーンショット 2023-06-06 17.14.01.png

公式ドキュメント

おわり

スクリーンショット 2023-06-06 17.23.08.png
Beta版に関する記事なのでちょっと心配です。
「Appleが一般に開示した情報」に該当してると思うので大丈夫だとは思いますが、
もしアウトだったらコメントで教えて欲しいです。

20
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
12