0

編集モードのときに、テーブルビューにセクションヘッダーを追加したいと思います。基本的には、データソースの一部にして、テーブルの他の部分と同じ外観にする必要があります(必要な結果については、下の画像を参照してください)。ただし、オブジェクトをデータソースに挿入(「連絡先の追加」)すると、編集モードの切り替え時に多くのマイクロ管理が行われ、実際にはデータソースの一部ではなく、ヘッダーとして機能します。

次のコードスニペットを使用して同じ効果を達成しようとしましたが、正しくなりませんでした(セクションの上部に連絡先の追加テキストを追加しただけで、グループ化されたテーブルセルとしての一部ではありません)。

誰かが私が欠けているものについて何か手がかりを持っていますか?

- (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;
    }

}

ここに画像の説明を入力してください

4

1 に答える 1

0

「連絡先の追加」行をデータソースに追加する必要はありません。numberOfRowsInSectionとcellForIndexPath:メソッドにある必要があります。

tableView:numberOfRowsInSection:行数+1を返す必要があります。

tableView:cellForIndexPath:行番号が0の場合は挿入セルを返し、それ以外の場合はindexPath.row-1のデータのセルを返します。

didSelectなどに少し余分なものが必要になりますが、多くのマイクロマネジメントが必要になることはありません。

于 2012-08-05T12:36:37.877 に答える