本記事ではiOS17.0において実装されたinspectorビューについて説明します。
inspectorはiPadなど画面領域が大きいデバイスではサイドからスライドインして表示されるビューで、iPhoneの場合は下からスライドしてきます。見た目やsheetビューと似ています。
inspectorの活用方法は?
inspectorビューは、コンテンツの詳細を説明することに用いたり、メインコンテンツを捕捉するためのViewを表示することを想定されています。
基本的な使い方
.inspector(isPresented: $presented)を任意のビューに適応することで使用できます。
isPresentedのパラメータで指定したフラグがtrueになると、.inspectorのcontentとして指定したビューが表示されます。
以下はinspectorモディファイアを用いた簡単なサンプルコードです。
サンプルコード
import SwiftUI
struct InspectorSmp: View {
@State private var presented: Bool = false
@State private var editor: String = ""
var body: some View {
NavigationStack {
TextEditor(text: $editor)
Text("Inspector Sample View")
// ツールバーにインスペクターの表示/非表示の切り替えボタンを作成
.toolbar {
Spacer()
Button {
presented.toggle()
} label: {
Label("ShowInspector", systemImage: "info.circle")
}
}
// インスペクタービューを表示
.inspector(isPresented: $presented) {
InspectorView()
}
}
}
struct InspectorView: View {
var body: some View {
Text("Inspector Area")
}
}
}サンプルコードの動作
サンプルコードではツールバーにボタンを設置しています。このボタンをタップするとinspectorで指定したビューが表示されるようになっています。
右の画像における”Inspector Area”の部分がinspectorで表示させたビューです。
iPhoneの場合


iPadの場合


sheetビューと異なる点
sheetビューと異なる点として挙げられるのが、inspectorビューを表示した状態で後ろのビューを操作できることです。
まとめ
本記事ではinspectorビューの基本的な使い方とその特徴について説明しました。sheetビューと見た目や動作は似ていますが、異なる点もあり、使い所のありそうなビューかと思います。

