2016-08-05 34 views
1

Was ist die bessere Option, um neue Zeilen am Ende in UITableView hinzuzufügen, um reibungsloses Scrollen zu erhalten.UITableView Laden Sie mehr, ohne die Tabelle neu zu laden

Option 1 - insertRowsAtIndexPaths Option 2 - reload

Wenn ich reload verwenden, flackert UITableView für Augenblicke und smooth scrolling beeinflussen.

Ich versuche, "Load more" -Feature in der UITableView zu implementieren, während Benutzer die Tabelle nach unten scrollt. Web-Service wird verwendet, um Daten mit asynchronen Aufrufen für Weitere Zeilen laden zu erhalten.

+0

Option 1 - insertRowsAtIndexPaths ist die bessere Option zum Laden mehr. Sie können auch eine Animation hinzufügen. –

+0

Könnten Sie uns bitte helfen, einige Codezeilen zu implementieren, um insertRowsAtIndexPaths zu implementieren – UserDev

+0

Bitte überprüfen Sie meine Antwort. –

Antwort

2

Fügen Sie diesen Code hinzu, wenn Sie eine Webservice-Antwort erhalten.

NSMutableArray *indexPaths = [NSMutableArray array]; 
    NSInteger currentCount = self.datasource.count; 
    for (int i = 0; i < dataToAdd.count; i++) { 
     [indexPaths addObject:[NSIndexPath indexPathForRow:currentCount+i inSection:0]]; 
    } 

    // do the insertion 
    [self.dataSource addObjects:dataToAdd]; 

    // tell the table view to update (at all of the inserted index paths) 
    [self.tableView beginUpdates]; 
    [self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationLeft]; 
    [self.tableView endUpdates];