我一直在寻找很长一段时间,但我找不到我的问题的答案 .

在我的应用程序中,我有一个带有两个按钮的分段控件 . 当我在这些按钮之间切换时,我会:

  • 将加载屏幕显示为子视图

  • 执行网址请求以获取要在我的tableview中显示的内容

  • 用我的TableView填充我的dataArray和新数据

  • 调用重新加载数据

  • 删除加载屏幕子视图 .

在大多数情况下一切正常,但..

有时,真的不常见,表格视图“崩溃”,经过这5个步骤 . 它的意思是 . 该视图仅显示一个或两个单元格 . 当我滚动到顶部或底部时,我只滚动到白色 . 在我目前的解决方案中,我无法在我的iPhone(IOS6)上重现此错误,仅在模拟器(IOS7)中 . 我认为这与更改表视图的数据时滚动有关 . 它仅在开始滚动后不久滚动并按下分段控制按钮时发生,但有时仅发生 . 但它可能还有另一个原因......

我的问题是,什么可能导致表视图布局错误(只显示一些单元格并滚动成白色),任何想法?在发生这种情况后,如何恢复/重绘整个tableview?请帮忙..

我阅读了很多关于[tableview beginUpdates],[tableview endUpdates]和insertRows的内容,但我认为在这种情况下这不是正确的解决方案 . 或者告诉我,如果我错了 .

以下是针对步骤2-4剪切的主要代码 . 如果代码的另一部分可以提供帮助,也许是cellForRowIndexPath,请告诉我 .

NSMutableArray *newResults = [[NSMutableArray alloc] initWithArray:[self getResultsForRequest:url]];

[resultsLock lock]; 
results = newResults; //results is the data source for my tableView
[resultsLock unlock];

[self.tableView reloadData];

感谢所有响应者 .