不会删除细胞

时间:2011-02-24 03:31:07

标签: iphone ios uitableview

我有一个自定义UITableView,允许用户选择多个图片。问题是我的删除方法不起作用。

我会跟踪所有选定的图像,当用户确认删除时,图像将从阵列中删除,表格应该更新。

[self.tableview reloadData]的调用不是从我的tableView中删除单元格。

我怎样才能做到这一点?我怎么称呼

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {

或类似的东西强制表检查数据源并重绘单元格?

3 个答案:

答案 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]; }

希望在给予我的手指如此多的痛苦后,将以更好的方式解决您的疑问;)