Xamarin での tvOS 進行状況インジケーターの操作

この記事では、Xamarin.tvOS アプリ内での進行状況インジケーターの設計と操作方法について説明します。

Xamarin.tvOS アプリでは、新しいコンテンツを読み込んだり、時間のかかる処理操作の実行が必要になる場合があります。 これらの実行中は、アクティビティ インジケーターや進行状況バーを表示して、アプリがまだ実行中であることをユーザーに知らせ、実行中のタスクの長さについて何らかの目安を提示する必要があります。

進行状況インジケーターのサンプル

アクティビティ インジケーターについて

アクティビティ インジケーターは回転する歯車として表示され、未確定の長さのタスクを表すために使用されます。 このインジケーターは、タスクの開始時に表示され、タスクが完了すると消えます。

Apple には、アクティビティ インジケーターを操作するための次の推奨事項があります。

  • できるだけ進行状況バーを使用する - アクティビティ インジケーターは、実行中のプロセスがあとどのくらいかかるかについての情報は提供しません。そのため、長さがわかっている場合 (あと何バイトでファイルがダウンロードされるかなど) は常に進行状況バーを使用します。
  • インジケーターのアニメーションを継続する - アクティビティ インジケーターが静止したままだと、ユーザーにはアプリが停止していると見えるため、表示中のインジケーターは常にアニメーション化する必要があります。
  • 処理中のタスクについて説明する - アクティビティ インジケーターを表示しておくだけでは不十分です。ユーザーには、待機中のプロセスを説明する必要があります。 タスクを明確に説明する、意味のあるラベル (通常は完成した一文) を含めます。

進行状況バーについて

進行状況バーは一本の線で表され、時間のかかるタスクの進行状況と長さが色で塗りつぶされて示されます。 進行状況バーは、タスクの長さがわかっているか、計算できる場合に常に使用する必要があります。

Apple には、進行状況バーの使用に関する次の推奨事項があります。

  • 進行状況を正確に報告する - 進行状況バーは、タスクを完了するために必要な時間を常に正確に表す必要があります。 アプリが忙しく動作しているように見せるために時間を偽って表示しないでください。
  • 適切に定義された期間に使用する - 進行状況バーは、時間のかかるタスクが実行されていることを示すだけでなく、タスクがどの程度完了したかと、残り時間の見積もりをユーザーに示す必要があります。

進行状況インジケーターとストーリーボード

Xamarin.tvOS アプリで進行状況インジケーターを操作する最も簡単な方法は、iOS Designer を使用してアプリの UI に追加することです。

  1. Solution PadMain.storyboard ファイルをダブルクリックし、編集するために開きます。

  2. ツールボックスからアクティビティ インジケーターをドラッグし、ビューにドロップします。

    アクティビティ インジケーター

  3. Properties Pad[Widget] タブでは、アクティビティ インジケーターのいくつかのプロパティ (StyleBehaviorName など) を調整できます。

    アクティビティ インジケーターの [ウィジェット] タブ

    Name は、C# コードのアクティビティ インジケーターを表すプロパティの名前を決定します。

  4. ツールボックスから進行状況ビューをドラッグし、ビューにドロップします。

    進行状況ビュー

  5. Property Explorer[Widget] タブでは、進行状況ビューのいくつかのプロパティ (StyleProgress (完了率)、Name など) を調整できます。

    進行状況ビューの [ウィジェット] タブ

    Name は、C# コードの進行状況ビューを表すプロパティの名前を決定します。

  6. 変更を保存します。

ストーリーボードの使用の詳細については、「はじめての tvOS クイック スタート ガイド」を参照してください。

アクティビティ インジケーターの操作

前述のように、アプリが不確定な長さの長いプロセスを実行している場合は、アクティビティ インジケーターを表示する必要があります。

いつでも IsAnimating プロパティをチェックして、アクティビティ インジケーターがアニメーション化されているかどうかを確認できます。 HidesWhenStopped プロパティが true の場合、アクティビティ インジケーターは、アニメーションが停止すると自動的に非表示になります。

次のコードを使用してアニメーションを開始できます。

ActivityIndicator.StartAnimating();

次のコードを実行すると、アニメーションが停止します。

ActivityIndicator.StopAnimating();

Note

これらのコード スニペットは、iOS Designer の [Widget] タブでアクティビティ インジケーターの名前ActivityIndicator に設定されていることを前提としています。

進行状況バーの操作

繰り返しになりますが、所要時間がわかっている、時間のかかるタスクをアプリが実行している場合は、常に進行状況バーを使用する必要があります。

Progress プロパティは、完了したタスクの量を 0% から 100% (0.0 から 1.0) に設定するために使用されます。 ProgressTintColor プロパティを使用して完了分を示すバーの色を設定し、TrackTintColor プロパティを使用して背景色 (未完了分) を設定します。

まとめ

この記事では、Xamarin.tvOS アプリ内での進行状況インジケーターの設計と操作方法について説明しました。