ios - 防止UICollectionViewCell的跳转

标签 ios swift uicollectionview uicollectionviewcell

我有一个 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 中,contentOffsetcontentSize 等所有属性均由 UICollectionViewLayout 管理,可以自定义满足您的具体需求。对我来说,有两个选择(按优先级):

1)寻找一种自定义布局(或自己实现一个),它可以让您实现所需的类似聊天的行为

2) 在 collectionView 的顶部插入一个虚拟的空单元格,每次删除/添加任何新单元格时,通过使其布局无效或仅调用来管理虚拟单元格的高度以实现目标collectionView.reloadItems([IndexPath(行:0,节:0)])

关于ios - 防止UICollectionViewCell的跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756893/

相关文章:

快速警告 : expression implicitly coerced from 'String?' to Any

ios - 快速创建弹性标题

iPhone 本地通知不会出现

objective-c - rootViewController 需要澄清

ios - 当 self 被调用时,自定义 CTPlotDataSource 未被调用

swift - 将方法传递给函数时避免强引用

ios - Swift:使用闭包的枚举?

ios - UICollectionView didSelectItemAt 从不触发

ios - Swift 3 操纵 UICollectionViewCell 大小?

ios - 加载图像不是从 .xcassets 文件夹?