2012-02-13 13 views
0

テーブルビューをセクションに分割したいと思います。 3つのセクションに分割されたテーブルビューの例を見たいと思います。セクションが始まるインデックスを選択することができます。iphoneアプリケーションのカスタムセクションにテーブルを分割する(xcode 4.2)

私はオブジェクトの配列を持っているので、テーブルビューに値を設定します。セクションのタイトルとセクションの開始位置を選択したいと思います(行1-13はセクション1、13-30はセクション2などとなります)。

私はこれまでのところ、これを持っている:

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

    if (ingredientListChoice == 1) { 
     return 3; 

    } 

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    if (ingredientListChoice == 1) { 
    return @"Section Title"; 
    } 
} 

あなたが私に私が取得しています何の例を示すことができる場合は私に知らせてください。ありがとうございました。

答えて

1

ここでは、それを行う方法があります。基本的には、各セクションの正しいサイズをtableView:numberOfRowsInSection:から返す必要があります。次に、データアレイのコンテンツをtableView:cellForRowAtIndexPath:にプルするときに、行インデックスの位置にオフセットを追加して、表のセルに正しいコンテンツを設定する必要があります。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 3; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    switch (section) { 
     case 0: return 13; break; 
     case 1: return 17; break; 

     etc... 
    } 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath 
{ 
    cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    } 

    int offset = 0; 
    switch (section) { 
     case 0: offset=0; break; 
     case 1: offset=13; break; 
     case 2: offset=30; break; 

     etc... 
    } 

    int arrayRow = indexPath.row + offset; 
    cell.textLabel.text = [myArray objectAtIndex:arrayRow]; 

    return cell; 
} 

きれいな方法は、あなたがプロパティとして保存配列にあなたのセクションのサイズを格納するかもしれない(あなたはおそらくviewDidLoadに設定されことになる)、その後numberOfRowsInSectionとcellForRowAtIndexPathが必要な値(複数可)を読むことができるから、その配列は、将来的にセクションのサイズを変更する必要がある場合は、1つの場所を更新するだけです。

関連する問題