在聊天应用程序中使用带有 contentoffset 的 uitableview 进行延迟加载

Lazy loading with uitableview with contentoffset in a chat application

我正在开发一个聊天应用程序,我想用一组模型数据实现延迟加载。问题是我无法设置正确的 uitable 视图内容偏移量,因为我正在填充数组,而我的 table 视图滚动位置小于 100-200。这些是我手头的东西:table 重新加载之前的先前偏移量,table 重新加载之前的先前内容大小和 table 重新加载 之后的新内容大小.这是一个聊天应用程序,所以我像其他聊天应用程序(whatsapp 等)一样从上到下滚动。

这里是scrollviewdidscroll的代码:

func scrollViewDidScroll(_ scrollView: UIScrollView) {

        if (scrollView == self.tblMessage){
            if (scrollView.contentOffset.y < 200.0 && isLoadingMore){
                count = count + 30
                let prevOffset = self.tblMessage.contentOffset
                let prevContSize = self.tblMessage.contentSize
                self.getDateWiseMessagesFromLocalDB()
                let newOffset = self.tblMessage.contentSize.height - prevContSize.height + 200 + self.tblMessage.frame.height
                self.tblMessage.setContentOffset(CGPoint(x: 0, y: newOffset), animated: false)
                isLoadingMore = false
            }

        }
}

得到答案,唯一需要改变的是 newOffset。将其设置为

let newOffset = self.tblMessage.contentSize.height - prevContSize.height + self.tblMessage.frame.height