2013-04-04 47 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

相關問題