2

我的一个桌面视图让我发疯。

我有一个滚动视图,里面有 3 个表格视图。
但由于一个奇怪的原因,我的控制器无法计算contentSize.height其中一个 tableView 的值。

我已经放置了 3 个断点来记录它的contentSize.height.

  • viewDidLoad, contentSize.height= 0px (正常不是吗?)

  • viewDidAppear:, contentSize 高度 = 26px 。此时,我没有要显示的数据,我正在后台检索一些数据,并tableView:numberOfRowsInSection:为此 tableview 返回 0(每个 tableView 只有 1 个部分)

  • 收到我的数据并reloadData在我的 tableView 上执行后,contentSize height = 986 (header 26px + 24 rows * 40px)

直到这里,一切看起来都很正常。

现在,从我的视图控制器中,我正在显示另一个视图控制器:presentViewController:animated:completion:

当我回到我最初的视图控制器时,我保留了我以前的数据。tableView:numberOfRowsInSection:返回我 24 行,但contentSize.heighttableview 是 26px。当我尝试滚动它时,我的表格只是弹跳,但我的数据显示在表格中。

此问题仅出现在 iOS 6中,而不出现在 iOS 7 中。

有什么想法可以解决这个问题吗?

编辑

-(void)viewDidAppear:(BOOL)animated
{
    timerRefresh = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(refreshMethod) userInfo:nil repeats:NO];

    if(!isLoaded)
    {
        isLoaded = TRUE;
        //some stuff that have to be done once
        [self asynchGetDataWithCompletion:^(NSDictionary *result) {
            //process incoming data
            [myTable reloadData];
        }];
    }
}

我使我的计时器无效-(void)viewDidDisappear:(BOOL)animated

4

0 回答 0