首页 > 解决方案 > 使用 inputAccessoryView 在 UICollectionViewController 上的零索引中插入项目时出现问题

问题描述

我正在使用 开发聊天对话 UI UICollectionViewController,最初在collectionViewController中有 20 个项目。

当我滚动到顶部时。

if scrollView.contentOffset.y == - 44 { /* Inserting 10 items at zero th position in collectionView */ }

我将插入 10 个项目IndexPath(item: 0, section: 0)

所以在 CollectionView 中总共会有 30 个项目。

此时我遇到了一些 UI 动画问题,并且集合视图被滚动到顶部。

例如实际项目是 0,1,2,3...19

现在我在第零个索引处插入,所以像 29,28,27,...20,0,1,2,3...19 这样的项目

我希望你明白。

示例 gif

我的问题是当我的收藏视图在顶部显示 0、1、2、3 时,我正在插入 29、28、27、...20,但收藏视图不会向上或向下滚动。它必须显示相同的 0,1,2,3 (在顶部静默插入项目并且不更改任何 ui)

就像 WhatsApp 聊天 - 在滚动到顶部时获取旧消息。

标签: iosswiftuicollectionviewchat

解决方案


我不知道我是否理解,但你可以试试这个:

 self.collectionView.setContentOffset(CGPoint(x:0,y:0), animated: true)

在您的insertItem方法填充您的数据源之后。


推荐阅读