在聊天应用程序中使用带有 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
我正在开发一个聊天应用程序,我想用一组模型数据实现延迟加载。问题是我无法设置正确的 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