【问题标题】:UICollectionViewCell position wrong after animating动画后 UICollectionViewCell 位置错误
【发布时间】:2018-01-23 11:22:52
【问题描述】:

因此,我正在尝试基于 UICollectionView 和自定义 UICollectionViewFlowLayout 在 Shazam Discover 和 Tinder 之间构建一个开源库组合。

我遇到了一个问题,在为一侧的单元格设置动画后(例如,将其滑到一侧),当单元格被 UICollectionView 重用时,它会保持在该位置。 (我猜单元重用是这里的问题,因为它似乎只在滚动几个单元后才会发生)

有什么简单的方法可以解决这个问题吗?还是我在这里做错了什么?看了几天,但自己似乎找不到解决办法。

您可以尝试/查看Github上的代码

我尝试发布一些代码 sn-ps,但我不确定我应该在此处发布哪些代码,因为它有很多代码。如果我应该在这里发布代码,请告诉我。

非常感谢任何帮助。祝你有美好的一天:)

下面是正在发生的事情的演示:

【问题讨论】:

  • 如何触发丢弃动画?我下载了该项目,但没有滑动工作..
  • 只需滑动(从中心拖动到一侧)滑动仍然有点问题,但向左侧滑动应该效果最好
  • @MilanNosáľ 还要确保您从开发分支下载代码,因为 master 尚未包含此代码。
  • 是的,我刚刚注意到我使用了 master.. 去看看

标签: ios uicollectionview uikit uicollectionviewcell


【解决方案1】:

在单元格类之外,在HomeVC 中,您可以在其中处理平移以将卡片刷走,您还可以操作图层的anchorPoint - 您需要重置它以使绘图工作像以前一样:

override func prepareForReuse() {
    super.prepareForReuse()

    // reset to default value (https://developer.apple.com/documentation/quartzcore/calayer/1410817-anchorpoint)
    self.layer.anchorPoint = CGPoint(x: 0.5, y: 0.5)
}

【讨论】:

  • @JoniVR 我已经创建了一个带有修复的拉取请求,您只需要重置锚点,因为您在平移过程中对其进行了操作。此外,请注意向上/向下滑动时的奇怪故障非常短而且速度很快..也有一些要调试的东西,但它与这个问题无关......我现在没有时间为此做出贡献,但也许以后我可以去做:)..
  • 我已经合并了它,我知道,要让它稳定还有很多工作要做,但这有很大帮助。非常感谢!
  • @JoniVR 很高兴我能为开源做出贡献:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多