UICollectionViewCompositionalLayout ортогональный раздел willDisplayCell проблема

Я использую пример проекта Apple для композиционного макета представления коллекции: https://developer.apple.com/documentation/uikit/views_and_controls/collection_views/using_collection_view_compositional_layouts_and_diffable_data_sources

композиционный макет gif

Единственное изменение, которое я внес в код Apple, - это добавление этой функции:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
   print("will display cell at \(indexPath)")
 }

Когда я прокручиваю одну ортогональную секцию, willDisplayCell также вызывается для ячеек в других ортогональных секциях. Например, я прокручиваю раздел 0 до ячейки 10, и willDisplayCell вызывается для [0, 10], [1, 10] и [2, 10], хотя в разделах 1 и 2 отображаются только первые несколько ячеек.

Связанная проблема заключается в том, что когда я прокручиваю раздел 0 до самого начала, willDisplayCell никогда не вызывается для [0, 0], [0, 1] или [0, 2].

Почему это происходит?

0 ответов