2016-09-23 62 views
0

我在調用以下函數來更新tableView。但是,我發現heightForHeaderInSection被調用兩次,表中的每個節都有。所以如果我有5個部分,函數會被調用10次。這是正常的嗎?heightForHeaderInSection何時被調用

tableView.beginUpdates() 
    let sections = NSIndexSet(index:posts.count - 1) 
    tableView.insertSections(sections, withRowAnimation: .None) 
    tableView.endUpdates() 
+0

是的,這是正常的! –

+0

爲什麼需要兩次調用 – user172902

+0

IDK,有人可能會解釋,讓我們等待。但其正常。 –

回答

1

要回答你的問題讓我們看看UITableViewDelegate。從Apple文檔:

UITableView對象的委託必須採用 UITableViewDelegate協議。該協議的可選方法允許 委託人管理選擇,配置節標題和 頁腳,幫助刪除和重新排序單元格以及執行其他操作。

那麼當UITableViewDelegate在你的案例中被調用?當您使用insertSections更新tableView時,代表會被呼叫。因此,在向tableView插入新節後,將調用heightForHeaderInSection

heightForHeaderInSection被調用的次數取決於你如何更新tableView

此外可以強調一下,蘋果公司並沒有給出明確的解釋,UIKit多長時間會稱你爲委託方法。

相關問題