我有一个 UICollectionView
,其中的每个单元格代表类似聊天 View 中的一条消息。每次添加新单元格时,我都会设置顶部内容偏移量,以便单元格“粘”到 UICollectionView 的底部,而新单元格将单元格推到屏幕上,如下所示:
------------
|-----
| // This space represents a content offset from the top
|-----
A
B
C
D // Each of these is a UICollectionViewCell
------------
这很好用。但是,8 秒后,我删除了 UICollectionView
顶部的 UICollectionViewCell
。这使得剩余的单元格向上移动以填充其位置,然后我设置内容偏移量以适应丢失的单元格,它们全部向下移动,就像粘在 UICollectionView 的底部一样>。我怎样才能做到这一点,以便删除顶部 UICollectionViewCell
不会使其余单元格像这样上下跳跃?
最佳答案
不要使用contentOffset
属性来操纵顶部偏移量。在 UICollectionView
中,contentOffset
、contentSize
等所有属性均由 UICollectionViewLayout
管理,可以自定义满足您的具体需求。对我来说,有两个选择(按优先级):
1)寻找一种自定义布局(或自己实现一个),它可以让您实现所需的类似聊天的行为
2) 在 collectionView 的顶部插入一个虚拟的空单元格,每次删除/添加任何新单元格时,通过使其布局无效或仅调用来管理虚拟单元格的高度以实现目标collectionView.reloadItems([IndexPath(行:0,节:0)])
关于ios - 防止UICollectionViewCell的跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756893/