IOS在加载时插入多个部分

时间:2014-04-26 04:35:49

标签: ios uitableview infinite-scroll sections

当用户到达当前加载的内容的末尾时,很难确定如何向我的tableview添加其他部分。我的表设置方式是每个内容都是tableview中的一个部分,我不知道如何使用像这样的库将50个新部分添加到我的表中:

https://github.com/samvermette/SVPullToRefresh

- (void)insertRowAtBottom {
    __weak SVViewController *weakSelf = self;

    int64_t delayInSeconds = 2.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        [weakSelf.tableView beginUpdates];
        [weakSelf.dataSource addObject:[weakSelf.dataSource.lastObject dateByAddingTimeInterval:-90]];
        [weakSelf.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:weakSelf.dataSource.count-1 inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
        [weakSelf.tableView endUpdates];

        [weakSelf.tableView.infiniteScrollingView stopAnimating];
    });
}

1 个答案:

答案 0 :(得分:1)

我首先制作了我的数组Mutable,以便我可以添加对象。然后你还必须重新加载tableview,因为你正在改变myArray.count的数量我查找NSIndexSet是什么,我为我的数组创建了一个,所以我可以为我的tableview设置新的部分(添加底部或顶部)这是完整的代码块"我用过的。

//Reload the tableview and update the array count
[self.tableView reloadData];
//Start the update
            [weakSelf.tableView beginUpdates];
//Created the NSIndexSet to go into the next method
            NSIndexSet *indexSet = [self.games indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop){
                return [obj isKindOfClass:[NSString class]];
            }];
//Inserting the new sections
            [weakSelf.tableView insertSections:indexSet withRowAnimation:UITableViewRowAnimationTop];
            [weakSelf.tableView endUpdates];
            //Stop the Animation
            [weakSelf.tableView.pullToRefreshView stopAnimating];

如果您没有重新加载tableview,那么您的tableview 将不会更新。它甚至可能会崩溃,因为出现了一些奇怪的错误。