Могу ли я настроить повторное использование UICollectionView? - PullRequest
0 голосов
/ 10 марта 2020

Я создам карусель, используя UICollectionView. И я хочу, чтобы ячейки за пределами UICollectionView были видны.

Поэтому я добавил этот код, потому что думал, что это простая проблема.

collectionView.isPagingEnabled = true
collectionView.clipsToBounds = false

Но, конечно, некоторые ячейки снаружи границы были скрыты путем повторного использования.

Есть ли возможность использовать UICollectionView без повторного использования, или настроить диапазон повторного использования, или ... et c?

Заранее спасибо.

1 Ответ

0 голосов
/ 10 марта 2020

да, вы можете использовать UICollectionView без повторного использования.

в функции источника данных collectionview:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 

вместо использования

let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as! CollectionViewCell

и возврата ячейки, Вы можете создать свою собственную ячейку, не вызывая функцию dequeue collectionView и возвращать эту вновь созданную ячейку

. Недостатком этого является то, что каждый раз, когда вашему коллекционному представлению нужна новая ячейка, она создает новую ячейку и не использует повторно уже использованную ячейку. В результате сверхурочно увеличивая количество ячеек памяти

, чтобы решить эту проблему, вы можете упорядочить массив, который будет отслеживать, какую ячейку использовать для какого индекса, и извлекать ячейку из этого массива (если он доступен) или создавать его, когда его нет и добавьте его в массив

...