【问题标题】:Completion block never called in setCollectionViewLayout从未在 setCollectionViewLayout 中调用完成块
【发布时间】:2017-11-15 11:02:42
【问题描述】:

我正在通过移动一个单元格来更新UICollectionView 的布局。

collectionView.moveItem(at: sourceIndex, to: destIndex)

collectionView.collectionViewLayout.invalidateLayout()

collectionView.setCollectionViewLayout(collectionView.collectionViewLayout, animated: true)
{ (done) in
      print("i'm here")
}

但是setCollectionViewLayout 的完成块永远不会被调用,而动画是正确完成的。 有什么想法吗?

谢谢

【问题讨论】:

  • 我终于发现不需要setCollectionViewLayout了,因为moveItem已经做了动画……

标签: ios swift uicollectionview uicollectionviewlayout


【解决方案1】:

编辑:

BallpointBen 是正确的 - 不需要更改结构。

我相信您没有收到完成块的原因是您将 New 布局设置为 Existing 布局。所以,因为没有实际的变化,所以没有“完成”。

哎呀...结构应该是:

    collectionView.setCollectionViewLayout(collectionView.collectionViewLayout, 
        animated: true, completion: {
            (done) in
            print("I'm here")
    })

【讨论】:

  • 这相当于OP写的
  • 不需要completion: 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
相关资源
最近更新 更多