我有一个自定义UITableView
,允许用户选择多个图片。问题是我的删除方法不起作用。
我会跟踪所有选定的图像,当用户确认删除时,图像将从阵列中删除,表格应该更新。
对[self.tableview reloadData]
的调用不是从我的tableView中删除单元格。
我怎样才能做到这一点?我怎么称呼
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
或类似的东西强制表检查数据源并重绘单元格?
答案 0 :(得分:0)
改为使用
[yourTableView deleteRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationTop];
答案 1 :(得分:0)
通常,它需要实施UITableViewDelegate
方法才能使用红色附件按钮DELETE
此外,请确保更新数据源before
进行任何插入或删除。如果数据源提供的行数与插入或删除后的表中的行数不匹配,则会发生崩溃。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Update data source to match row counts of the source and the tableView
// An array containing multiple NSIndexPath is used
// You can create an array with only one element
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
}
}
答案 2 :(得分:0)
查看该场景,您可以通过两种方式执行此操作
1)使用reloadData函数
while using this please make sure about the 2 thing when you choose to delete the cell first check whether that particular record has been deleted at indexpath which you want it to be.
其次,在使用[self.tableView reloadData]或[ObjectofTableView reloadData]之后从数组中删除数据。这种方式也很好。
但苹果已经提供了一些方法来从表中删除细胞,但有一些效果。所以它在下面的方法中使用很多。
2)方式我希望你使用它,因为它在使用UITableView的应用程序中看起来很棒。
(void)tableView:(UITableView *)tableView commitEditingStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if(editingStyle == UITableViewCellEditingStyleDelete){
//Over here first delete record from array at indexPath
// [self makeLogout]; [self.acloginTblView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; }
[self.acloginTblView reloadData]; }
希望在给予我的手指如此多的痛苦后,将以更好的方式解决您的疑问;)