tableView中的insertSections

时间:2014-05-16 20:40:19

标签: ios uitableview tableview

我想在更新后插入一些部分,但我有相同的元素。我该怎么做?我想在最后一个元素之后插入元素。但是有错误。

我的代码

     [self.tableView beginUpdates];
     for (WallPost *wp in news) {
        if (!_tableDataSource.count || ![_tableDataSource containsObject:wp]) {
           [_tableDataSource insertObject:wp atIndex:_tableDataSource.count];
           [self.tableView insertSections:
               [NSIndexSet indexSetWithIndex:
               _tableDataSource.count-1] 
               withRowAnimation:UITableViewRowAnimationBottom];
        }
     }
     [self.tableView endUpdates];

1 个答案:

答案 0 :(得分:2)

我不知道您的确有什么错误,但是您在section周期中tableView插入了for。相反,您应向对象添加对象,然后使用方法tbaleView使用一组索引重新加载indexSetWithIndexesInRange中的部分:

int count = 0;
for (WallPost *wp in news) {
    if (!_tableDataSource.count || ![_tableDataSource containsObject:wp]) {
        [_tableDataSource addObject:wp];
        count++;
    }
}

if(count > 0) {
    [self.tableView beginUpdates];
    [self.tableView insertSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(_tableDataSource.count-count, count) withRowAnimation:UITableViewRowAnimationBottom];
    [self.tableView endUpdates];
}

只是一份报告:

您不需要使用:

[_tableDataSource insertObject:wp atIndex:_tableDataSource.count];

因为你每次都在最后添加对象..所以更喜欢:

[_tableDataSource addObject:wp];