我正在嘗試構建類似於iOS本地提醒應用的應用。哪裏有包含頁眉和頁腳的項目列表。每個單元格包含一個UITextView
,用戶鍵入時將動態更改單元格高度。頁腳視圖包含相同的單元格視圖,除了我希望它是一個頁腳,因此它將堅持到底部視圖。我有單元格設置爲動態高度。UITableView reloadSections不會觸發viewForFooterInSection?
checklistTable.rowHeight = UITableViewAutomaticDimension
checklistTable.estimatedRowHeight = 60
checklistTable.sectionFooterHeight = UITableViewAutomaticDimension
checklistTable.estimatedSectionFooterHeight = 60
這裏是輸入時更新單元格高度的邏輯,這對於常規單元格非常適用,但不適用於頁腳視圖。我在 viewForFooterInSection中設置了一個斷點,它在初始加載後從未被調用過。
func textViewDidChange(_ textView: UITextView) {
let startHeight = textView.frame.size.height
let calcHeight = textView.sizeThatFits(textView.frame.size).height
if startHeight != calcHeight {
UIView.setAnimationsEnabled(false)
tableView?.beginUpdates()
if cellType == .footer {
tableView?.reloadSections(IndexSet(integer: 0), with: .automatic)
}
tableView?.endUpdates()
UIView.setAnimationsEnabled(true)
}
}
任何人都可以指向正確的方向嗎?在UIView
&調用tableView?.beginUpdates()
感謝
沒有viewForFooterInSection曾經得到最初叫什麼? –
API文檔只說這種方法更新單元格,而不是頁眉和頁腳。 – picciano
@nirav是的,viewForFooterInSection獲取調用初始化。有時在滾動 –