如何以编程方式在分组部分中添加或删除单元格?
我在 Storyboard中使用静态单元格创建了一个分组 TableView 。在 Storyboard中,我使用属性检查器面板设置行数。例如,对于第 1 部分,我定义了 3 行。然后使用 3 项的 NSMutableArray,我可以在启动时正确地将值正确加载到每个部分。
我最终希望能够在运行时添加/删除单元格。该部分尚未编码,但为了模拟添加新的单元格场景,我在代码中向数组添加了一个新项目,但没有增加“属性检查器”面板中该部分的行数。我曾希望我不需要进行任何其他更改来适应新项目,因为在 numberOfRowsInSection 方法中,我将返回特定部分的数组计数。
这是我重新运行代码时得到的错误消息:
* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[__NSArrayI objectAtIndex:]: index 3 beyond bounds [0 .. 2]”
显然我需要以某种方式指定额外的行数。谁能阐明我如何在运行时执行此操作?谢谢。
最佳答案
你不应该通过属性检查器来做。它使您无法动态插入和删除单元格。 尝试
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [yourArray count];
}
否则执行此操作。
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if(section==0){
return 3;
}else if(section==1){
return 4;
}
return 0;
}
如果您有很多部分,则针对不同的部分依此类推.. 当您更新从中读取数据的数组时,您可以重新加载整个表..
[tableView reloadData];
但更好的方法是像这样在一个 block 中插入一行或多行。
[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:yourIndexPath withRowAnimation:UITableViewRowAnimationRight];
[tableView endUpdates];
您还可以添加动画以从右侧或列表或顶部或底部添加单元格。
希望对你有帮助!! 干杯!
关于iphone - 如何从分组部分 uitableview 添加/删除单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542276/