我正在构建一个聊天应用程序,但是收藏夹视图有问题。在我的应用程序中,我只想做类似whatsapp的操作,在开始时,我加载前50条消息,当我们向下滚动时,希望一堆一堆地获取其他消息。但是,当我这样做并调用集合视图的reloadData方法时,它将滚动到顶部消息。而且我不希望他们滚动。你能帮助我吗。请..
我只是想使collectionView类似于whatsapp的聊天视图。即,当用户滚动到旧消息时,加载更多消息。
答案 0 :(得分:1)
您要的只是将单元格(插入)到收集视图中,而无需重新加载它。
在插入项目时选中appledoc。
确定新的indexPaths,然后使用以下内容将其提供给集合视图
yourCollectionView.insertItems(at indexPaths: newIndexPaths)
答案 1 :(得分:1)
到达终点时检测并获取更多数据
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath)
{
let lastSectionIndex = collectionView.numberOfSections - 1
let lastRowIndex = collectionView.numberOfItems(inSection: lastSectionIndex) - 1
if indexPath.section == lastSectionIndex && indexPath.row == lastRowIndex
{
//fetch more items
//add items to data array
//Reload collectionview
}
}
答案 2 :(得分:0)
尝试pagination
概念
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
if indexPath.row + 1 == dataArray.count && dataArray.count < completeData.count {
fetchMoreData()
}
.....
}
func fetchMoreData() {
//Fetch and add more data to your dataArray.
//Reload collectionView
}