Как установить максимальное количество элементов для разделов UICollectionView в Swift 4? - PullRequest
0 голосов
/ 09 июня 2018

Я создаю UICollectionView с возможностью изменения порядка.Немного похоже на this .

Я бы хотел ограничить количество элементов в каждом разделе представления коллекции и изменить «анимацию упорядочения» (когда элемент перетаскивается).

Например:
У вас есть представление коллекции с 3 разделами (A, B и C).
3 раздела имеют максимальное количество элементов.
Вы перемещаете один элемент из раздела B в раздел A.
Последний элемент раздела A должен перемещаться в раздел B, а не увеличивать количество элементов в разделе A.

Любая идея, как это реализоватьособенность

Ответы [ 2 ]

0 голосов
/ 15 июня 2018

Почему бы вам не попробовать функцию, которая просматривает все три раздела, видит, в каких из них слишком много элементов, а затем перемещает их.Затем ... При возврате количества элементов в каждом представлении коллекции вызывайте эту функцию, когда она превышает максимальное количество элементов для каждого раздела.Пожалуйста, дайте мне знать, если вам нужны разъяснения.

func collectionView(.....numberOfItemsOrRows?...){
    if (newArrayCountForList1 > maxElements){
        redistributeArrayValues()
     } // copy the above if statement with function inside for the next 2 arrays
 (Assuming each section has an array representing elements in that section)
}
0 голосов
/ 12 июня 2018

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

Вы можете попробовать некоторые расширения, подобные этой:

https://github.com/michel-moreau/DraggableCollectionView

https://github.com/lognllc/DraggableCollectionView

https://github.com/liangdahong/BMDragCellCollectionView

https://github.com/Instagram/IGListKit

Обязательно скачайте и продемонстрируйте их код, это может быть то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...