Add/Delete UITableViewCell with animation?

前端 未结 4 796
深忆病人
深忆病人 2020-12-04 15:34

I know this might sound like a dumb question, but I have looked every where. How can I do this?

I know how to do this with a swype-to-delete method, but how cam I do

相关标签:
4条回答
  • 2020-12-04 15:52
    [self.tableView beginUpdates];
    [self.tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationFade];
    [self.tableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationFade];
    [self.tableView endUpdates];
    

    insertIndexPaths is an array of NSIndexPaths to be inserted to your table.

    deleteIndexPaths is a array of NSIndexPaths to be deleted from your table.

    Example array format for index paths :

    NSArray *insertIndexPaths = [[NSArray alloc] initWithObjects:
            [NSIndexPath indexPathForRow:0 inSection:0],
            [NSIndexPath indexPathForRow:1 inSection:0],
            [NSIndexPath indexPathForRow:2 inSection:0],
            nil];
    
    0 讨论(0)
  • 2020-12-04 15:55

    You want these two methods: insertRowsAtIndexPaths:withRowAnimation: and deleteSections:withRowAnimation: They are both detailed in the UITableView documentation.

    0 讨论(0)
  • 2020-12-04 15:59

    In Swift 2.1+

    tableView.beginUpdates()
    tableView.deleteRowsAtIndexPaths([YourIndexPathYouWantToDeleteFrom], withRowAnimation: .Fade)
    tableView.insertRowsAtIndexPaths([YourIndexPathYouWantToInsertTo], withRowAnimation: .Fade)
    tableView.endUpdates()
    

    And you can create an NSIndexPath easily like so:

    NSIndexPath(forRow: 0, inSection: 0)
    
    0 讨论(0)
  • 2020-12-04 16:09

    Swift 4.0

        tableView.beginUpdates()
        tableView.deleteRows(at: [YourIndexPathYouWantToDeleteFrom], with: .fade)
        tableView.insertRows(at: [YourIndexPathYouWantToInsertTo], with: .fade)
        tableView.endUpdates()
    

    For creating IndexPath use this:

    IndexPath(row: 0, section: 0)
    
    0 讨论(0)
提交回复
热议问题