2012-01-28 8 views
0

編集モードのときにセクションヘッダーをテーブルビューに追加します。基本的には、テーブルの残りの部分と同じ外観を持つデータソースの一部にしたいだけです(希望の結果については下の画像を参照してください)。しかし、データソースにオブジェクト(「連絡先を追加」)を挿入すると、編集モードを切り替える際のミクロ管理が多くなり、実際にはデータソースの一部ではなく、ヘッダーとして多くなります。iOS - グループ化されたテーブルのUITableViewセクションヘッダー部分

次のコードスニペットを使用して同じ効果を得ようとしましたが、右に表示されませんでした(ちょうどセクションの上に座るようにAdd Contactテキストを追加しましたが、 。

誰かが欠けていることに手がかりはありますか?

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)]; 

    if (section == 1) { 

     UITableViewCell *addContactCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; 

     addContactCell.textLabel.text = @"Add Contact"; 
     addContactCell.textLabel.opaque = NO; 

     return addContactCell; 

    } else { 

     return nil; 
    } 

} 

enter image description here

答えて

0

あなたは、データソースに行「連絡先の追加」を追加する必要はありません。あなたは、あなたのnumberOfRowsInSectionとcellForIndexPath:のメソッドの中にいなければなりません。

のtableView:numberOfRowsInSectionは:行+ 1

のtableViewの数を返す必要がある:cellForIndexPathは:行番号が0である場合、あなたの挿入セルを返し、そうでなければindexPath.rowのためのデータのためのセルを返します - 1.

あなたはdidSelectなどに少し余分なものを持たなければならないが、多額のマイクロマネジメントを伴うべきではない。