表视图:单击时替换整个数据

时间:2014-01-22 15:36:30

标签: ios objective-c uitableview replace

我一直在寻找很长一段时间,但我找不到答案。

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

  1. 将加载屏幕显示为子视图
  2. 执行网址请求以获取要在我的tableview中显示的内容
  3. 用我的TableView填充我的dataArray和新数据
  4. 调用重新加载数据
  5. 删除加载屏幕子视图。
  6. 在大多数情况下,一切正常,但是......

    有时候,在这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];
    

    感谢所有响应者。

0 个答案:

没有答案