检查iPhone UITableView中的所有项目
我有一个UITableView,其中每个单元格在单击时要么获得/丢失一个复选框,要么转到另一个表视图。对于每个表,我想添加一个check all按钮,用于检查该表中的每个单元格及其内部的所有单元格。如何允许一个UITableViewCell在其TableView中切换每个UITableViewCell的复选框 编辑:删除索引路径中的最后一个索引,并将其替换为新的行号,我可以遍历整个表并将其选中,如下所示:检查iPhone UITableView中的所有项目,iphone,uitableview,Iphone,Uitableview,我有一个UITableView,其中每个单元格在单击时要么获得/丢失一个复选框,要么转到另一个表视图。对于每个表,我想添加一个check all按钮,用于检查该表中的每个单元格及其内部的所有单元格。如何允许一个UITableViewCell在其TableView中切换每个UITableViewCell的复选框 编辑:删除索引路径中的最后一个索引,并将其替换为新的行号,我可以遍历整个表并将其选中,如下所示: for(int i = 0; i < [tableView numberOfRows
for(int i = 0; i < [tableView numberOfRowsInSection:0]; i++){
UITableViewCell *newCell = [tableView cellForRowAtIndexPath:[[indexPath indexPathByRemovingLastIndex]
indexPathByAddingIndex: i]];
newCell.accessoryType = UITableViewCellAccessoryNone;
}
for(int i=0;i<[tableView numberOfRowsInSection:0];i++){
UITableViewCell*newCell=[tableView cellForRowAtIndexPath:[[indexPath indexPathByRemovingLastIndex]
indexPathByAddingIndex:i]];
newCell.accessoryType=UITableViewCellAccessoryNone;
}
奇怪的是,它大约每十个细胞就跳过一次——甚至不一致。对于一个年份列表,有时不勾选2003年和1993年,有时不勾选2003年和1991年,依此类推。它总是大约每十个单元格一次,但我找不到模式。当您单击单元格时,将调用DIDSelectRowatineXpath,此时您所要做的就是使用tableView CellForRowatineXpath:indexPath方法,以便逐个返回所有单元格并将其附件类型设置为选中标记…希望这有帮助 编辑:另一种方法是,如果您可能有某种数组(不看代码很难告诉您具体做什么),但如果您有一些数组,其中包含的值表示哪些单元格需要有复选标记,那么您可以在cellForRowAtIndexPath中使用来指定复选标记附件,因此当您的单元格被选中时,您可以将数组中的所有值设置为您需要的值,只需调用UITableViews reloadData…希望如此:),这里有一小部分代码可以尝试让它更清晰 假设您有1个部分和x行数
NSMutableArray shouldHaveCheckmark; //this array will be of size x
//(one for each row) and hold NSNUmbers 0 means not checked 1 means checked you initialize
//this somewhere (viewDidLoad maybe) and should be declared in your .h file
//this is cellForRowAtIndex path
-(UITableViewCell)cellForRowAtIndexPath:(NSIndexPath*)path
{
UITableViewCell *cell=...
if([[shouldHaveCheckmark objectAtIndex:path.row] boolValue] )
//assign checkmark accesory
//other code
return cell;
}
因此,您可以在didSelectRowAtIndexPath中看到,您可以翻转数组中的数字并调用tableView上的reloadData…这种方法也会起作用谢谢,但是如何找到每个单元格的索引路径呢。我尝试使用:[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:I第0节];从0到最后一个表行,但当我返回到上一个表时,这会导致应用程序崩溃。您需要编辑的单元格的索引路径您可能应该知道,或者您可以将它们存储在某个位置…我不知道您的应用程序为什么会崩溃您可能做错了什么,如果您发布一些代码,我可以查看它并告诉您是否看到任何可能导致崩溃的东西