设置contentOffset时,UICollectionViewCell消失

时间:2017-06-01 11:24:56

标签: ios swift

我创建了一个基于特定触发器滑动其项目的UICollectionView。 我试图通过以下方式为细胞过渡设置动画:

            UIView.animate(withDuration: 0.4,
                           delay: 0.5, animations: {

                            self.headingsCollectionView.contentOffset = CGPoint(x: x, y: 0)
                            self.headingsCollectionView.reloadItems(at: [indexPath])
            })

动画成功,问题是当我更改CollectionView contentOffset时,当前项目消失而不是滚动。

  • 我尝试重新加载当前项目(如建议here)所以 会保持可见但它仍然不起作用。
  • 我试过scrollToItemAtIndexPath:atScrollPosition:animated但是 它没有动画项目过渡。
  • setContentOffset:animated试过它,它也没有动画。

1 个答案:

答案 0 :(得分:0)

因为您使用的是UIView.animate方法,所以必须在以编程方式设置contentOffset后放置self.view.layoutIfNeeded()

 UIView.animate(withDuration: 0.4,
                   delay: 0.5, animations: {

                    self.headingsCollectionView.contentOffset = CGPoint(x: x, y: 0)
                    self.headingsCollectionView.reloadItems(at: [indexPath])
                    self.view.layoutIfNeeded()
    })