2

私のすべてのセルを選択する selectAll メソッドがありますUITableView。このメソッドはチェックボックスをチェックします(UIButton)"visible"細胞だけではなく、細胞に対しても非常にうまく機能し"invisible"ます!

ここで私の方法:

- (IBAction)selectAll:(id)sender {

    for (NSInteger s = 0; s < self.tableView.numberOfSections; s++) {
        for (NSInteger r = 0; r < [self.tableView numberOfRowsInSection:s]; r++) {

            CustomCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:r inSection:s]];

            if(!cell.checkbox.selected){
                cell.checkbox.selected = !cell.checkbox.selected;
                cell.account.checked = cell.checkbox.selected;
            }

        }
    }   
}
4

3 に答える 3

4

ドキュメントから:

cellForRowAtIndexPath:

戻り値:

nil if the cell is not visibleテーブルまたは indexPathのセルを表すオブジェクトが範囲外です。

チェックされているかチェックされていないかのブール値のリストを含む配列を作成し、セルが表示されているときにそれを調べることができます。

于 2013-03-21T09:25:17.363 に答える
0

cellForRowAtIndexPath で確認してください。適切な indexPath.section で if 条件を確認するだけです

if (indexPath.section== add the section){
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else{
cell.accessoryType = UITableViewCellAccessoryNone;
}
于 2013-03-21T09:27:43.967 に答える
0

" " メソッドでセルの" selected" または " " 状態をチェックまたはチェック解除する必要があります。基になるデータ ソースは、セルで表現しようとしているデータの状態を追跡できるもう 1 つの場所です。checkedcellForRowAtIndexPath

この関数を使用して UITableViewCells を変更するだけでは、テーブル ビュー内に現在表示されているセルのみが更新されます。

于 2013-03-21T09:15:30.180 に答える