2017-09-07 42 views
0

我有一個簡單的聊天界面,從服務器收到的最新消息顯示爲表格中的最後一行,我需要滾動到該行以顯示消息用戶。但是,我有一個AccessoryView用於輸入新消息。在UITableView上調用scrollToRow無法與AccessoryView一起使用

當我調用scrollToRow(at:index)時,屏幕會滾動到最後一行,但它不會偏移內容以迎合accessoryView - 即使tableview連接到附件視圖的頂部。

任何想法如何解決這個問題?我的accessoryView是固定的高度,所以也許我可以設置一個tableview偏移來覆蓋它,但想要一個更優雅的解決方案。

回答

0

找到解決方案。如果您延遲scrollToRow調用很短的時間(這比呈現accessoryView所需的時間稍長),滾動將起作用。使用0.3秒的數值是不夠的,但使用0.6時它的工作非常好。

DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) { 
    self.tableView?.scrollToRow(at: pathToLastRow, at: .bottom, animated: animated) 
} 
相關問題