iOS 10 collectionView:prefetchItemsAt 未调用

Dán*_*agy 0 ios uicollectionview ios10

我正在尝试协议的新方法collectionView:prefetchItemsAtcollectionView:cancelPrefetchingForItemsAt方法UICollectionViewDataSourcePrefetching,但都没有调用。委托是通过界面构建​​器设置的(从具有相同结果的代码中尝试),部署目标设置为 iOS 10,所以理论上它应该可以工作。所以我的问题是我是否遗漏了一些东西以使其工作,或者机制比我想象的更复杂并且系统认为它不应该进行预取?

iOS*_*ith 10

可能是您设置了estimatedItemSize,在这种情况下可能不会调用预取。

来源:在迷你演示应用程序中试用。


Uma*_*Ali 5

在 ViewController 中实现 UICollectionViewDataSourcePrefetching 接口:

class ViewController: UIViewController, UICollectionViewDataSourcePrefetching {

  override func viewDidLoad() {
      super.viewDidLoad()

      collectionView.delegate = self
      collectionView.dataSource = self
      collectionView.prefetchDataSource = self
   }
}
Run Code Online (Sandbox Code Playgroud)

您必须检查集合视图属性是否启用了“isPrefetching”。如果未启用,请将其值设置为 true。

collectionView.isPrefetchingEnabled = true  
Run Code Online (Sandbox Code Playgroud)