2013-04-04 39 views
10

因此,我有一个UITableViewController,它会启动另一个tableVC,它会在解散时更改原始单元格的数量。UITableView在解散其他视图后滚动内容大小不正确

解散后,尽管返回了正确的单元格高度(和页眉高度)以及更新的行数(例如滚动内容很大),但滚动视图仅在滚动时弹起。在查看表的滚动的contentSize属性时,contentSize不正确,并且与以前相同。

最初加载原始tableVC时,我没有问题。如果我有大量的单元格,表格将按预期滚动。只有在解雇提出的tableVC后,我才会遇到问题。有一件事我不确定的是何时调用reloadData。我这样做如下:

1中提出tableVC

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil] 

原tableVC 2:

-(void)viewDidAppear  
{ 
    //tablecell number manipulated 
    [table reloadData]; 

} 

有趣的是,如果我旋转为横向然后回到肖像,contentSize然后正确设置,我可以再次滚动。

+0

刚刚遇到这个,是'viewDidAppear'一个错字 - 你没有正确复制代码吗? – Rich 2014-04-21 01:23:32

回答

3

添加

[table setNeedsDisplay]; 

此外,有没有你为什么没有动画一个特别的原因?

+0

似乎不起作用。我也沿着同样的思路尝试了setNeedsLayout。 – 2013-04-04 17:32:26

+0

如何添加回动画? – Mundi 2013-04-04 19:31:11

+0

它在我的真实代码中实际上是动画的,我只是在这里犯了一个错误。我需要它是动画。 – 2013-04-04 20:54:11

0

我有一个类似的问题。响应在子viewController中输入的数据,我正在更改静态tableView的行数和部分数量,但在更新内容时,contentSize不是,导致滚动问题。

在我的情况下,在iOS6中似乎有一个reloadData的错误,它阻止了tableView正确计算新的尺寸(这在iOS7中工作正常)。我通过在行和部分中调用适当的插入和删除来解决此问题,详细信息请参见:UITableView won't reload contentSize

1

我解决了这个问题,通过明确地重新加载部分而不使用reloadData。 [table reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];

+0

谢谢,这是一个有用的答案。 – DeyaEldeen 2016-08-16 15:19:35

相关问题