Разрешает ли установкаtimateItemSize для UICollectionViewFlowLayout нарушать UICollectionViewDataSourcePrefetching? - PullRequest
0 голосов
/ 15 января 2019

Я создаю UICollectionView с ячейками динамической высоты и использую свойство estimatedItemSize для UICollectionViewFlowLayout ( Справочник по Apple Docs ).

Хотя я заметил, что после установки свойства estimatedItemSize мой метод prefetchItemsAt для делегата UICollectionViewDataSourcePrefetching не вызывается.

func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath])

Если я не установил оценочный размер элемента, предварительная выборка снова начинает работать. Это известное поведение или я делаю что-то не так? Пожалуйста, помогите.

Пример кода:

class CollectionViewController: UICollectionViewController {

var layout: UICollectionViewFlowLayout = {
    let layout = UICollectionViewFlowLayout()
    let width = UIScreen.main.bounds.size.width
    layout.estimatedItemSize = CGSize(width: width, height: 100)
    return layout
}()

override func viewDidLoad() {
    super.viewDidLoad()
    if #available(iOS 10.0, *) {
        collectionView?.prefetchDataSource = self
    }

    collectionView.collectionViewLayout = layout

    // Register cell classes
    self.collectionView.register(UINib.init(nibName: "CollectionViewCell", bundle: nil), forCellWithReuseIdentifier: reuseIdentifier)
}
}

extension CollectionViewController: UICollectionViewDataSourcePrefetching {

// MARK: UICollectionViewDataSourcePrefetching
func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath]) {


    // Fetch more cells
    print("prefetchItemsAt called.")
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...