まずはテキトーにプロジェクトを作ります。
最初にもとからあるViewControllerを削除します。 デフォルトのViewController選択して(メニューバーをクリックして)delete。ヘッダーファイルとソースファイルも削除。
右ペインから「Table View Controller」をドラッグして貼り付けます。
ViewControllerを貼り付けただけでは何の意味もないので、対応するクラスを実装します。「File」メニューから「New」-> 「File」をクリックします。
「Class」を適当な名前に設定し、「Subclass of」を 「UITableViewController」に設定します。
そして中にコードを埋め込んでいきます。UITableViewのClassを追加すると最初からコードがあるのでそれに追加していく形になります。
はじめにTableのセル(行)の数と セクション(セルのグループ)の数を設定します。
そのメソッドは
(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
と
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
です。
コードはこんな感じ
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// 戻り値にセクションの数を入力する。
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// 戻り値にセルの行数を入力する。
return 10;
}
で次はCellの中身を埋める作業を行います。
メソッド
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
を書き換えます。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//このあたりは色々めんどくさいのでこう書く!と覚えといてください
//とりあえずセルのオブジェクトを作っています。
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Cellの中身を代入します。
cell.textLabel.text = [[NSString alloc]initWithFormat:@"Cell %d", indexPath.row];
return cell;
}
実行すると
このように。
これだとすべてのセルに1つの文言しか入らないので、別々の文言を入れる方法を。
ヘッダーファイルに
NSMutableArray *men;
と書く。ソースファイルのviewDidLoadメソッドにmen = [NSMutableArray arrayWithObjects:@"ラーメン", @"そば", @"うどん", nil];
と書いてシンプルな配列を作成。
メソッド
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)sectionの戻り値を
return men.count;
と設定。
メソッド
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
のcell.textlabel.textを
//objectAtIndexは配列の(引数)番目を呼び出すメソッド。
//indexPath.rowは○番目のセルてな感じ
cell.textLabel.text = [men objectAtIndex:indexPath.row];
実行するとこんなん。
0 件のコメント:
コメントを投稿