tableViewに関する覚え書き

tableView に関する設定の説明です。

テーブル内のセクション数を設定する

以下の例では、2つのセクションをもつテーブルになります。

– (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

return 2;

}

セクション内の行数を指定する

以下の例では、最初のセクションは、2行のデータを表示し、次のセクションでも2行のデータを表示します。

– (NSInteger)tableView:(UITableView *)tableView

numberOfRowsInSection:(NSInteger)section {

if (section == 0) {

return 2;

}

else if(section == 1){

return 2;

}

return [listOfGameMode count];

}

各セルの表示内容の設定「セルを生成(初期化)する時に呼ばれる」

以下の例では、最初のセクションの最初の行のテキストに”yamazon”と表示し、次の行に、”webTipsAroundMe”と表示します。同様に、二つ目のセクションには、”iPhoneApp”、”objective-C”と表示します。return の前の行は、各セルの背景を赤に設定しています。

– (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]

autorelease];

}

// NSString *cellValue = [listOfGameMode objectAtIndex:indexPath.row];

// cell.textLabel.text = cellValue;

if(indexPath.section == 0) {

if(indexPath.row == 0) {

cell.textLabel.text = @”yamazon”;

} else if(indexPath.row == 1){

cell.textLabel.text = @”webTipsAroundMe”;

}

} else if(indexPath.section == 1) {

if(indexPath.row == 0) {

cell.textLabel.text = @”iPhoneApp;

} else if(indexPath.row == 1){

cell.textLabel.text = @”objective-C;

}

}

cell.contentView.backgroundColor = [UIColor redColor];

return cell;

}

各セルの表示内容の設定「セルを表示する時に呼ばれる」

上記のメソッドと少し使い分けがややこしいですが、各セルの背景色などを設定するには以下のように「willDisplayCell」メソッドで実装したほうが良いようです。以下のメソッドでは、各奇数セルは背景色を白にし、偶数セルは、UIColorで指定した色(薄い水色)に設定しています。

– (void)tableView:(UITableView *)tableView

willDisplayCell:(UITableViewCell *)cell

forRowAtIndexPath:(NSIndexPath *)indexPath

{

if (indexPath.row % 2 == 0) {

cell.backgroundColor = [UIColor whiteColor];

}

else {

cell.backgroundColor = [UIColor colorWithHue:0.61

saturation:0.09

brightness:0.99

alpha:1.0];

}

}

セクションのヘッダーのタイトルを設定

以下の例では、最初のセクションでは、yamazonという文字がセクションのヘッダー部に表示されます。その他のセクションでは、WTAMが表示されます。

– (NSString *)tableView:(UITableView *)tableView

titleForHeaderInSection:(NSInteger)section{

if(section == 0) {

return @”yamazon”;

}

return @”WTAM;

}

セクションのフッター部のタイトルを設定

以下の例では、セクションのフッター部にFooterという文字列が表示されます。

– (NSString *)tableView:(UITableView *)tableView

titleForFooterInSection:(NSInteger)section {

return @”Footer”;

}

セルが選択された時の設定

– (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:

(NSIndexPath *)indexPath {

}

セクションのヘッダー部の設定

– (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

}

セクションのヘッダーの高さを設定

– (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {

return 30;

}

各行の高さの設定

– (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

if (indexPath.section == 0) {

if(indexPath.row == 0) {

return 80; // 一番上のセクションの一番上の行の高さは80ピクセルにします。

}

} else if (indexPath.section == 1) {

return 60; // 二番目のセクションの行の高さは全て60ピクセルにします。

}

return 45; // 上で指定しなかった全てのセクション・行の高さは全て45ピクセルにします。

}

コメントする

メールアドレスが公開されることはありません。

CAPTCHA