我的一个桌面视图让我发疯。
我有一个滚动视图,里面有 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.height
tableview 是 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