Xamarin.iOS のテーブルのパーツと機能

UITableView には、‘グループ化’ スタイルまたは ‘プレーン’ スタイルを使用でき、次の部分で構成されます。

これらのスクリーンショットは、セクション行、ヘッダー、フッター、編集コントロール、インデックスがどのように表示されるかを示しています。

これらのスクリーンショットは、セクション行、ヘッダー、フッター、編集コントロール、インデックスがどのように表示されるかを示しています

これらの部分については後でさらに詳しく説明します。

セクション ヘッダー

必要に応じて、セルをセクションにグループ化したり、カスタム ヘッダーでラベル付けしたり、フッターでラベル付けしたりできます。 ヘッダーは文字列値で設定することも、別のレイアウトやスタイルに合わせてカスタム ビューを指定することもできます。

セル

セルは、テーブルのメイン ユーザー インターフェイス要素です。 正しく実装されると、メモリ効率のためにセルが再利用されます。 4 つのセル スタイルが組み込まれており、独自のカスタム セルを作成できます。ストーリーボードを使用する場合は、コード内またはデザイナーで作成できます。

オプションのセクション フッターは文字列値で設定することも、別のレイアウトやスタイルに合わせてカスタム ビューを指定することもできます。 セクション ヘッダーとセクション フッターは、個別に設定できます。

インデックス

インデックスは、テーブルの右端にある文字のストリップとして表示されます。 インデックスをタッチまたはドラッグすると、テーブルのその部分へのスクロールが高速化されます。 インデックスは省略可能ですが、長いリストを移動するのに役立ちます。 インデックスは通常、グループ化されたスタイルでは使用されません。

編集モード

使用できる編集機能には、次のようなものがあります。

  • スワイプして個々のセルを削除します。
  • 編集モードに入り、各行の削除ボタンを表示する
  • 編集モードに入り、再順序付けハンドルを表示します。
  • 新しいセルを挿入します (アニメーション付き)。

このドキュメントの残りの部分では、Xamarin.iOS でこれらの UITableView のすべての機能を実装する方法を示しています。

クラスの概要

テーブル ビューの表示に使用される主なクラスを以下に示します。

テーブル ビューの表示に使用される主なクラスをここで示します

各クラスの目的を以下で説明します。

  • UITableView – スクロール コンテナー内のセルのコレクションを含むビュー。 テーブル ビューは通常、iPhone アプリでは画面全体を使用しますが、iPad ではより大きなビューの一部として存在することもあります (またはポップオーバーに表示されます)。
  • UITableViewCell – テーブル ビュー内の単一のセル (または行) を表すビュー。 組み込みのセルは 4 種類あり、C# または iOS Designer の両方でカスタム セルを作成できます。
  • UITableViewSource – 行数、各行のセル ビューを返す、行選択を処理する、その他多くのオプション機能など、テーブルを表示するために必要なすべてのメソッドを提供する Xamarin.iOS 専用の抽象クラス。 UITableView を動作させるには、これをサブクラス化する必要があります
  • NSIndexPath – テーブル内のセルの位置を一意に識別する Row プロパティと Section プロパティが含まれます。
  • UITableViewController – UITableView がそのビューとしてハードコードされ、TableView プロパティを介してアクセスできる、すぐに使用できる UIViewController。
  • UIViewController –テーブルが画面全体を占有しない場合は、フレームが適切に設定された UIViewController に UITableView を追加できます。

UITableViewSource は次の 2 つのクラスを置き換えます。これは Xamarin.iOS で引き続き使用できますが、通常は必要ありません。

  • UITableViewDataSource – Xamarin.iOS で抽象クラスとしてモデル化される Objective-C プロトコル。 各セルのビューを含むテーブルと、ヘッダー、フッター、テーブル内の行数とセクション数に関する情報を提供するには、サブクラス化する必要があります。
  • UITableViewDelegate –Xamarin.iOS でクラスとしてモデル化される Objective-C プロトコル。 選択、編集機能、その他のオプションのテーブル機能を処理します。

このドキュメントでは、すべての例で UITableViewSource を使用し、これら 2 つのクラスは無視します。 Apple のドキュメントで見つかった Objective-C の例が参照されるため、ここでメンションされています。そのため、その動作を理解することが有益です (代わりに、Xamarin.iOS の UITableViewSource を使用できます)。