【Swift】Gaugeとは?使い方や引数の意味、活用シーンをわかりやすく解説!

SwiftUIで「進捗」や「数値の割合」を視覚的に表現したいときに便利なのが Gauge です。

バッテリー残量、ダウンロード進捗、運動量、温度など、「値の範囲内でどの位置にあるか」を表示したいUIによく使われます。

この記事では Gauge の基本的な意味や使い方、活用シーン、注意点まで、初心者でもわかりやすいよう丁寧に解説します。

Gauge とは?

Gauge は SwiftUI における専用ビューの1つで、数値データを視覚的に示す棒グラフやメーターのようなコンポーネントです。

例えば、0〜100の範囲で現在の数値が「どのあたりか」を表示したいときに使えます。

UIKitで同様のUIを作るには UIProgressView やカスタムビューが必要でしたが、SwiftUIでは Gauge を使うだけで簡単に同様のUIが作成できます。

基本的な使い方

最もシンプルな Gauge の使い方は以下の通りです。

このコードでは、0〜100の範囲内で、現在の値(value)がどの位置にあるかを表示します。

GaugeView

Gauge は基本的に「現在値(value)」と「範囲(in: ~)」を指定するだけで表示ができるシンプルなUIです。

主要な引数とその意味

Gauge はカスタマイズ可能な引数を複数持っており、見た目や表示内容を柔軟に調整できます。

主な引数の役割は以下の通りです。

引数・要素 型/説明
value Double/現在の値を指定
in: Range/値の範囲を指定(例:0...100
label ViewBuilder/Gaugeのタイトルや説明テキストを定義
currentValueLabel ViewBuilder/現在の数値を表示(例:「50%」)
minimumValueLabel ViewBuilder/最小値のラベル(例:「0」)
maximumValueLabel ViewBuilder/最大値のラベル(例:「100」)
style(modifier) GaugeStyle/見た目のスタイル(例:.accessoryLinear)

具体例:数値付きのゲージ表示

以下のコードでは、最小値・最大値・現在値のラベルも追加した Gauge を表示します。

このように Gauge は他の UI(この例では Slider)と組み合わせることで、インタラクティブな進捗表示が可能になります。

この例では下部のSliderを動かすことで進捗バーを自分で動かすことができます。

GaugeView2

また、見た目を変える .gaugeStyle() モディファイアを使えば、デザインに応じたスタイル変更もできます。

Gauge のスタイル例

SwiftUI では以下のような GaugeStyle を指定できます(一部は watchOS 向けです)。

たとえば、下記のように書けば円形のゲージになります(watchOS推奨):

ただし、iOSアプリの場合は .accessoryLinear.linearCapacity を使うと見た目が安定するので、こちらをおすすめします。

活用シーン

Gauge は特に以下のようなシーンで便利です:

  • ユーザーの進捗表示(例:目標達成率、習得度、学習進捗)
  • 端末情報の表示(例:バッテリー残量、ストレージ使用量)
  • ヘルスケア系(例:心拍数、歩数、運動時間)
  • スライダーや数値入力と組み合わせたビジュアルフィードバック
  • IoT機器のデータ表示(例:温度、湿度、電力消費量)

値の変化を一目でわかりやすく伝えるためのUIとして、Gauge は非常に有効です。

初心者にもやさしく、SwiftUIのスタイルに沿った形で実装できるのが特徴です。

使用時の注意点

Gauge はとても便利なUIコンポーネントですが、値の範囲指定やスタイルの選び方によって挙動や見た目が大きく変わるため注意が必要です。

  • valuein: の範囲指定に注意
    実際の数値が範囲外にあるとゲージが正しく描画されず、期待通りのUIになりません。必ず valuein: の範囲内に収まるように制御する必要があります。
  • スタイルの互換性に注意
    GaugeStyle の一部は watchOS 専用です。iOSで使用すると表示されなかったりデザインが崩れることがあります。iOS向けには .accessoryLinear.linearCapacity を選ぶのがおすすめです。
  • ラベルをつけて意味を補足する
    ゲージは棒や円で進捗を示すだけなので、ラベルを付けないと「何を示しているゲージなのか」がユーザーに伝わりにくいです。
  • 用途に合ったデータに使う
    Gauge は連続的に変化する数値(進捗や割合など)を表すのに向いています。段階評価やカテゴリ分けのように「離散的な値」を扱いたい場合は別のUI(例えば ProgressView やアイコン表示)を検討しましょう!

こうしたポイントを理解しておけば、Gauge をより直感的でわかりやすいUIとしてアプリに取り入れることができます。

まとめ

今回は SwiftUI の Gauge について詳しく紹介しました。

  • Gauge は数値の割合や進捗を視覚的に表示するための View
  • valuein: で範囲と値を指定し、必要に応じてラベル表示を追加
  • .gaugeStyle() を使うことで見た目の調整も可能
  • iOS・watchOS 両方に対応(スタイルには要注意)
  • 学習アプリ、健康管理、バッテリー表示など幅広く使える

SwiftUIで進捗を表示したいときには、Gauge を使うことで見やすくて親しみやすいUIを簡単に実装できます。

ぜひ自分のアプリに取り入れて、ユーザーに直感的な情報提示をしてみてください。

おすすめの記事