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

问题描述 投票:0回答:1

我正在开发一个聊天应用程序,我想用一组模型数据实现延迟加载。问题是我无法设置正确的uitableview内容偏移量,因为我填充数组时我的tableview滚动位置小于100-200。这些是我手头的东西:表重新加载之前的前一个偏移量,表重新加载之前的前一个内容大小以及表重新加载之后的新内容大小。这是一个聊天应用程序,所以我像其他聊天应用程序(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
            }

        }
}
ios swift uitableview lazy-loading
1个回答
1
投票

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

let newOffset = self.tblMessage.contentSize.height - prevContSize.height + self.tblMessage.frame.height
© www.soinside.com 2019 - 2024. All rights reserved.