我有一個UITableViewController,它的表視圖具有靜態單元格,在故事板中定義。動態更改靜態單元格上的節標題文本
我的表格視圖有兩個部分。第一個有兩個單元,第二個有三個單元。第二部分的標題中也有文字。
我想要做的是當用戶點擊第一部分中的第一個或第二個單元格時,更新第二個部分的標題文本。動態地使用動態內容(例如,在點擊單元格的那一刻顯示日期和時間)。
我嘗試了很多東西,但viewForHeaderSection
只被調用一次。
我註冊了
tableView.registerClass(TableSectionHeader.self, forHeaderFooterViewReuseIdentifier: "secondSectionCell")
頁眉節電池在哪裏TableSectionHeader
很簡單:
class TableSectionHeader: UITableViewHeaderFooterView { }
我就能夠動態地設置節頭,就像這樣:
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == 1 {
if let cell = tableView.dequeueReusableHeaderFooterViewWithIdentifier("secondSectionCell") {
cell.textLabel?.text = "hello world"
return cell
}
}
return nil
}
我也實施了以下重寫,因爲有些人建議t當執行viewForHeaderInSection
時,還需要:
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 40.0
}
即使如此。 viewForHeaderInSection
只被調用一次。
我能夠以某種方式動態刷新部分標題文本,如上所述?
你不能這樣做它。沒有這方面的官方文件。你需要做自定義方法,如:http://stackoverflow.com/questions/23501952/refresh-only-the-custom-header-views-in-a-uitableview,但是,我強烈建議你離開節標題單獨使用細胞,而不是每個部分的第一個細胞。除非你想做一些你需要的粘性標題或其他東西。 – 2017-02-09 03:18:18
@Sneak我喜歡你的建議。可能是最簡單的方法。唯一的事情是擺弄桌面視圖來處理分隔單元格的線條,以及它們如何從tableview的左邊緣插入。 – dbarros
tableView.reloadSections將重新加載頁眉(和頁腳)以及該部分的內容 – Dale