UITableView Delete Row

前端 未结 2 859
孤城傲影
孤城傲影 2021-01-22 21:57

I am making a table view and I want to make a function where you can delete a row by swiping right and tapping the delete button. Me and my teacher have tried for about half an

相关标签:
2条回答
  • 2021-01-22 22:14

    This is because your numberOfRowsInSection data source implementation always returns 1 (fixed).

    Typically, you store objects in an array, which defines the number of rows. And, commitEditingStyle should remove the object from the array and then delete the row.

    – (void)tableView: (UITableView *)tableView commitEditingStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath: (NSIndexPath *)indexPath {if (editingStyle == UITableViewCellEditingStyleDelete) {
           // Delete the row from the data source
           [maTheData removeObjectAtIndex:[indexPath row]];
           // Delete row using the cool literal version of [NSArray arrayWithObject:indexPath]
    
           [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    
        }
    }
    

    Follow this link for more details.

    0 讨论(0)
  • 2021-01-22 22:26

    This swift function can delete a row by swiping right and tapping the delete button. Actually this function delete item from items array then delete row. In addition this row removed from tableView.

    override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == UITableViewCellEditingStyle.delete {
            // your items include cell variables
            items.remove(at: indexPath.row)
            tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
        }
    }
    
    0 讨论(0)
提交回复
热议问题