动画后 UICollectionViewCell 位置错误
Posted
技术标签:
【中文标题】动画后 UICollectionViewCell 位置错误【英文标题】:UICollectionViewCell position wrong after animating 【发布时间】:2018-01-23 11:22:52 【问题描述】:因此,我正在尝试基于 UICollectionView
和自定义 UICollectionViewFlowLayout
在 Shazam Discover 和 Tinder 之间构建一个开源库组合。
我遇到了一个问题,在为一侧的单元格设置动画后(例如,将其滑到一侧),当单元格被 UICollectionView
重用时,它会保持在该位置。 (我猜单元重用是这里的问题,因为它似乎只在滚动几个单元后才会发生)
有什么简单的方法可以解决这个问题吗?还是我在这里做错了什么?看了几天,但自己似乎找不到解决办法。
您可以尝试/查看Github上的代码
我尝试发布一些代码 sn-ps,但我不确定我应该在此处发布哪些代码,因为它有很多代码。如果我应该在这里发布代码,请告诉我。
非常感谢任何帮助。祝你有美好的一天:)
下面是正在发生的事情的演示:
【问题讨论】:
如何触发丢弃动画?我下载了该项目,但没有滑动工作.. 只需滑动(从中心拖动到一侧)滑动仍然有点问题,但向左侧滑动应该效果最好 @MilanNosáľ 还要确保您从开发分支下载代码,因为 master 尚未包含此代码。 是的,我刚刚注意到我使用了 master.. 去看看 【参考方案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 很高兴我能为开源做出贡献:)以上是关于动画后 UICollectionViewCell 位置错误的主要内容,如果未能解决你的问题,请参考以下文章
如何控制 UICollectionViewCell 调整动画大小?
自定义 UICollectionViewCell contentView 动画