構造体


ProgressView


タスクの完了に向けた進捗状況を示すビュー。


iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+

macOS 11.0+ tvOS 14.0+ visionOS 1.0+ watchOS 7.0+



struct ProgressView<Label, CurrentValueLabel> where Label : View, CurrentValueLabel : View


概観


進行状況ビュー (ProgressView) を使用して、タスクが完了に向けて進行中だが未完成であることを示します。進行状況ビューでは、進行状況の確定 (完了率) と不確定 (進行中かどうか) の両方の型を表示できます。


進行状況を示す数値とタスクの完了を表す total 値への結束を使用して ProgressView を初期化することにより、確定的な進行状況ビューを作成します。デフォルトでは、進行状況は 0.0 で、合計は 1.0 です。


以下の例では、状態プロパティの progress (進行状況) を使用して、確定した ProgressView に進行状況を表示します。進行状況ビューはデフォルトの合計 1.0 を使用し、progress は初期値 0.5 で始まるため、進行状況ビューは半分完了した状態から始まります。進行状況ビューの下にある [More(その他)] ボタンを使用すると、ユーザは進行状況を 5% ずつ増やすことができます。


  1. struct LinearProgressDemoView: View {
  2. @State private var progress = 0.5
  3. var body: some View {
  4. VStack {
  5. ProgressView(value: progress)
  6. Button("More") { progress += 0.05 }
  7. }
  8. }
  9. }


不確定な進行状況ビューを作成するには、進行状況の値をとらないイニシャライザを使用して下さい。


  1. var body: some View {
  2. ProgressView()
  3. }


Date 値の閉じた範囲をカバーする進捗ビュー (progress view) を作成することもできます。現在の日付 (date) が範囲内にある限り、進捗ビューは自動的に更新され、範囲の終わりに近づくにつれて進捗ビューが満たされたり、逆に減少したりします。以下の例は、進捗ビューの初期化開始時刻を 5 分間のタイマーの開始時刻とするものです。


  1. struct DateRelativeProgressDemoView: View {
  2. let workoutDateRange = Date()...Date().addingTimeInterval(5*60)
  3. var body: some View {
  4. ProgressView(timerInterval: workoutDateRange) {
  5. Text("Workout")
  6. }
  7. }
  8. }



Progress ビューのスタイリング


ProgressViewStyle プロトコルに準拠するスタイルを作成することにより、進捗ビューの外観と相互作用をカスタマイズできます。ビュー内のすべての進捗ビューインスタンスに特定のスタイルを設定するには、 progressViewStyle(_:) 修飾子を使用します。以下の例では、カスタムスタイルにより、囲んでいる VStack 内のすべての進捗ビューに丸みを帯びたピンクの境界線が追加されます。


  1. struct BorderedProgressViews: View {
  2. var body: some View {
  3. VStack {
  4. ProgressView(value: 0.25) { Text("25% progress") }
  5. ProgressView(value: 0.75) { Text("75% progress") }
  6. }
  7. .progressViewStyle(PinkBorderedProgressViewStyle())
  8. }
  9. }
  10. struct PinkBorderedProgressViewStyle: ProgressViewStyle {
  11. func makeBody(configuration: Configuration) -> some View {
  12. ProgressView(configuration)
  13. .padding(4)
  14. .border(.pink, width: 3)
  15. .cornerRadius(4)
  16. }
  17. }


SwiftUI には、linear (線形) と circular (円形) の 2 つの組み込み進捗ビュースタイルに加え、現在のコンテキストで最も適切なスタイルをデフォルトとする automatic (自動) スタイルが用意されています。以下の例は、60% 完了した時点で開始する円形の進捗ビューを示しています。


struct CircularProgressDemoView: View {
    @State private var progress = 0.6

    var body: some View {
        VStack {
            ProgressView(value: progress)
                .progressViewStyle(.circular)
        }
    }
}


macOS 以外のプラットフォームでは、円形スタイルは代わりに不確定なインジケーターとして表示される場合があります。





トピックス


不確定な進行状況ビューの作成


init()

ラベルなしで、不確定な進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し、CurrentValueLabelEmptyView の場合に使用できます。


init(label: () -> Label)

カスタムラベルを表示する不確定な進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し、CurrentValueLabelEmptyView の場合に使用できます。


init(LocalizedStringKey)

ローカライズされた文字列からそのラベルを生成する不確定な進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し、CurrentValueLabelEmptyView の場合に使用できます。


init<S>(S)

文字列からラベルを生成する不確定な進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し、CurrentValueLabelEmptyView の場合に使用できます。





確定した進行状況ビューの作成


init(Progress)

与えられた進行状況インスタンスを視覚化するための進行状況ビューを作成します。

LabelView に準拠し CurrentValueLabelView に準拠している時使用できます。


init<V>(value: V?, total: V)

確定した進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し CurrentValueLabelView に準拠している時使用できます。


init<V>(LocalizedStringKey, value: V?, total: V)

ローカライズされた文字列からそのラベルを生成する確定的な進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し CurrentValueLabelView に準拠している時使用できます。


init<S, V>(S, value: V?, total: V)

文字列からそのラベルを生成する確定的な進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し CurrentValueLabelView に準拠している時使用できます。


init<V>(value: V?, total: V, label: () -> Label)

カスタムラベルで、確定した進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し CurrentValueLabelView に準拠している時使用できます。


init<V>(value: V?, total: V, label: () -> Label, currentValueLabel: () -> CurrentValueLabel)

カスタムラベルで、確定した進行状況を表示するための進行状況ビューを作成します。

LabelView に準拠し CurrentValueLabelView に準拠している時使用できます。





構成からの進行状況ビューの作成


init(ProgressViewStyleConfiguration)

スタイル構成に基づいて進行状況ビューを作成します。

LabelView に準拠し CurrentValueLabelView に準拠している時使用できます。


struct ProgressViewStyleConfiguration

進行状況ビューインスタンスのプロパティ。





進行状況ビューのスタイリング


func progressViewStyle<S>(S) -> some View

このビューの進行状況ビューのスタイルを設定します。


protocol ProgressViewStyle

ビュー階層内のすべての進行状況ビューに標準の相互作用動作を適用する型。





標準の修飾子の適用


View の修飾子

標準の修飾子を適用して、このビューとそれに含まれるビューを構成します。





デフォルトの実装


View の実装



関連




以下への準拠


View



以下も見よ




値の指標


struct Label

タイトル付きのアイコンで構成される、ユーザインターフェイス項目の標準のラベル。


struct Gauge

範囲内の値を表示するビュー。



























トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ