iOS tableview重新加载错误

时间:2018-07-12 08:51:47

标签: ios uitableview reloaddata

我在列表中添加了一些项目,并命名为[tableView reloadData];

tableView的位置已更改。 有什么问题吗?

https://youtu.be/N_LtoJLrsxE

----添加了----

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    if([dataCenter.newsList count] > 0){
        return [dataCenter.newsList count];
    }
    return 0;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    if((((indexPath.row + 1) - 5) % 10) == 0 && indexPath.row >= 4){
        return 150;
    }
    else if(((indexPath.row + 1) % 5) == 0){
        return 95;
    }
    return 90;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    NewsInTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NewsInTableViewCell"];



    return cell;
}

- (void) scrollViewDidScroll:(UIScrollView *)sender {
    if(_tableNews.contentOffset.y + _tableNews.frame.size.height == _tableNews.contentSize.height){
        [self requestDataByPage:(int)[dataCenter.newsList count]];
    }
}

这是调用并添加数据后的reloadData。

    - (void) requestDataByPage:(int)start{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                            ------calling data and adding-----
                            dispatch_async(dispatch_get_main_queue(), ^{
                                [_tableNews reloadData];
                            });
                        });
        }

2 个答案:

答案 0 :(得分:0)

请在重新加载主线程上的tableview时添加自动布局约束。

dispatch.async.main {

self.tableview.reloadData() }

答案 1 :(得分:-1)

致电:self.tableView.reloadData(),不带[]。

如果这不能解决您的问题,请给我们提供您的项目示例代码。