我的一个桌面视图让我发疯。
我有一个滚动视图,里面有3个tableviews
但由于一个奇怪的原因,我的控制器无法计算其中一个tableView的contentSize.height
。
我已经设置了3个断点来记录contentSize.height
。
在viewDidLoad
,contentSize.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