2009/11/11 09:53:08
テーブルを実装するために必要なこと
・テーブルのレイアウト(View の構築)
・テーブルの内容(Cellにデータを提供)
・ユーザの操作に対する応答(Cellの選択等のユーザ操作に応答するためのデリゲードメソッドの実装)
Viewのレイアウト
UITableView でiPhoneの画面に表示する。
UITableView は UIScrollView クラスを継承するため、テーブルのスクロールが可能。
TableView を作成するには、割当( alloc )、初期化( initWithFrame )、データソースとデリゲートオブジェクトを割り当てる。
レイアウト作業を引き受けるのが、 UITableViewContoroller。
UITableViewContoroller は、標準の UIViewContoroller を作成し、それに UITableView を設定し、ナビゲーション、ツールバー等を追加するためのフレームワークを設定する。
このテーブルビューは、 tableView インスタンス変数を通じてアクセスできる。
UITableViewContoroller のサブクラスを作成するときに子の layoutView メソッドから [ super layoutView ] を呼び出さないといけない。
データソースの割当
テーブルとテーブルセルは別個に存在する。
UITableView インスタンスは新しいテーブルまたは既存のテーブルセルを必要に応じて設定し、外部ソースに依存する。
データソースは、インデックスパス( NSIndexPath )に基づいてテーブルセルを提供する。
オブジェクトをデータソースとして割り当てるには setDataSource: を使わなければいけない。
そのオブジェクトは UITableViewDataSource プロトコルを実装しなければいけない。
ほとんどの場合、テーブルビューを所有する UITableViewController が、そのビューに対するデータソースの役割を果たす。
データを割り当てた後は、テーブルの reloadData を呼び出すことにより、実際の画面に表示される。
デリゲードの割当
UITableView はデリゲードを使ってユーザの操作(スクロールや選択)に応答する。
通常は UITableViewContoroller をテーブルから取得する。
UITableView を直接操作する場合は、setDelegate: を使う。
UITableViewDelegateプロトコルを実装しないといけない。ただし、UITableViewContoroller を操作する場合は UITableViewContoroller 自動的に処理される。
UITableViewContoroller の役割
テーブルビューを管理する UITableViewContoroller に UITableView を埋め込む。
そのビューは、 tableView という名前であり、 self.tableView の呼び出しで直接アクセスできる。
テーブルビューのデータソースとデリゲードメソッドを自動的に自信に設定する。
setEditing:animated: 呼び出しを通じて自動的に親のナビゲーションバーに Edit|Done ボタンを追加するときに編集モードを自動的に実装する。
Table View を扱うにあたって下記のiPhone Dev Center にあるプログラミングガイドを読んでおくと役にたちます。
iPhone OS Table View プログラミングガイド
・テーブルのレイアウト(View の構築)
・テーブルの内容(Cellにデータを提供)
・ユーザの操作に対する応答(Cellの選択等のユーザ操作に応答するためのデリゲードメソッドの実装)
Viewのレイアウト
UITableView でiPhoneの画面に表示する。
UITableView は UIScrollView クラスを継承するため、テーブルのスクロールが可能。
TableView を作成するには、割当( alloc )、初期化( initWithFrame )、データソースとデリゲートオブジェクトを割り当てる。
レイアウト作業を引き受けるのが、 UITableViewContoroller。
UITableViewContoroller は、標準の UIViewContoroller を作成し、それに UITableView を設定し、ナビゲーション、ツールバー等を追加するためのフレームワークを設定する。
このテーブルビューは、 tableView インスタンス変数を通じてアクセスできる。
UITableViewContoroller のサブクラスを作成するときに子の layoutView メソッドから [ super layoutView ] を呼び出さないといけない。
データソースの割当
テーブルとテーブルセルは別個に存在する。
UITableView インスタンスは新しいテーブルまたは既存のテーブルセルを必要に応じて設定し、外部ソースに依存する。
データソースは、インデックスパス( NSIndexPath )に基づいてテーブルセルを提供する。
オブジェクトをデータソースとして割り当てるには setDataSource: を使わなければいけない。
そのオブジェクトは UITableViewDataSource プロトコルを実装しなければいけない。
ほとんどの場合、テーブルビューを所有する UITableViewController が、そのビューに対するデータソースの役割を果たす。
データを割り当てた後は、テーブルの reloadData を呼び出すことにより、実際の画面に表示される。
デリゲードの割当
UITableView はデリゲードを使ってユーザの操作(スクロールや選択)に応答する。
通常は UITableViewContoroller をテーブルから取得する。
UITableView を直接操作する場合は、setDelegate: を使う。
UITableViewDelegateプロトコルを実装しないといけない。ただし、UITableViewContoroller を操作する場合は UITableViewContoroller 自動的に処理される。
UITableViewContoroller の役割
テーブルビューを管理する UITableViewContoroller に UITableView を埋め込む。
そのビューは、 tableView という名前であり、 self.tableView の呼び出しで直接アクセスできる。
テーブルビューのデータソースとデリゲードメソッドを自動的に自信に設定する。
setEditing:animated: 呼び出しを通じて自動的に親のナビゲーションバーに Edit|Done ボタンを追加するときに編集モードを自動的に実装する。
Table View を扱うにあたって下記のiPhone Dev Center にあるプログラミングガイドを読んでおくと役にたちます。
iPhone OS Table View プログラミングガイド
PR