显示模式后UITableView的contentSize错误

时间:2014-01-30 08:19:38

标签: ios uitableview contentsize presentviewcontroller

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

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

我已经设置了3个断点来记录contentSize.height

  • viewDidLoadcontentSize.height = 0px(正常不是吗?)

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

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

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

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

当我回到初始视图控制器时,我保留了以前的数据。 tableView:numberOfRowsInSection:返回24行,但tableview的contentSize.height为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

中使我的计时器无效

0 个答案:

没有答案