我正在構建一個聊天應用程式,其中有一個人們可以進行聊天的各種渠道的表格視圖。
如果有新的訊息(頻道)進入,我將更新我的資料存盤,然后重新加載表視圖。在這個特殊的例子中,如果一個用戶接受了一個頻道的邀請,該頻道就會被添加到資料存盤中。
每當一個新的頻道被添加時,這個方法就會被呼叫:
@objc func processChannels() {
if self.airlockStore.unPinnedChannelDataObjects.isEmpty == true{
return return
} else {
let pinnedSection = self.tableViewAdaptor!. sections[0] as! TableViewAdaptorSection<ChannelTableViewCell,ChannelDataObject>
let unPinnedSection = self.tableViewAdaptor! sections[1] as! TableViewAdaptorSection<ChannelTableViewCell,ChannelDataObject>
unPinnedSection.items = airlockStore.unPinnedChannelDataObjects。
pinnedSection.items = airlockStore.pinnedChannelDataObjects
}
updateTableView()
}
隨后,這個被呼叫:
@objc func updateTableView() {
tableViewAdaptor?.tableView.isUserInteractionEnabled = true
tableViewAdaptor?.tableView.reloadData()
}
然而,我一直得到一個閃光/表視圖的內容暫時消失,然后以預期的方式顯示。
我已經閱讀了幾篇關于加載表視圖時出現閃光的帖子,但是還沒有解決這個問題。
我正在考慮重新加載表視圖中的個別行,但問題是;無法保證新頻道將被添加到我的頻道串列中的索引位置。
uj5u.com熱心網友回復:
你是否嘗試過在每次更新tableview之后不重新加載?
另一方面,這可能并不重要,但你為什么要設定isUserInteractionEnabled = true這么多次。
uj5u.com熱心網友回復:
在表視圖中添加/洗掉行之前和之后使用這個:
tableview.beginupdates()
//添加/洗掉行
tableview.endupdates()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/311694.html
標籤:
下一篇:試圖通過AVPlayer在uitableview中播放音樂,但播放的是錯誤的音樂(從Firebase加載錯誤的音樂)。
