Измените макет потока UICollectionView

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

myCollectionView.flowLayout = ...

Итак, как можно изменить схему потока в представлении коллекции?


person soleil    schedule 28.05.2014    source источник


Ответы (1)


Вы сказали:

Однако вы не можете просто сделать это:

myCollectionView.flowLayout = ...

Но на самом деле вы можете установить collectionViewLayout представления коллекции, и это только то, что вы хотите:

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

person matt    schedule 28.05.2014
comment
И это очень круто - когда вы устанавливаете макет, вы должны увидеть анимацию, когда ячейки перемещаются. - person matt; 29.05.2014
comment
Свойство flowLayout изменило имя на collectionViewLayout. - person Shu Zhang; 18.04.2016
comment
@ShuZhang Вы не поняли вопроса и ответа. Вопрос в том, почему нет свойства flowLayout. Ответ заключается в том, что вместо этого есть свойство collectionViewLayout. - person matt; 18.04.2016
comment
@pavan ты не понял ответа. Прочитайте комментарии. ОП тот, кто сказал flowLayout. Я просто цитирую его (именно это означает желтый блок). Мой ответ, начинающийся со слова фактически, указывает ему на collectionViewLayout. - person matt; 06.04.2017
comment
Если вы используете UICollectionViewController, свойство collectionViewLayout доступно только для чтения. То есть вы не можете установить его через: self.collectionViewLayout = myFlowLayout На самом деле нужно перейти к collectionView и установить его так: self.collectionView?.collectionViewLayout = myFlowLayout - person anorskdev; 24.04.2017
comment
@anorskdev На самом деле это то, что предлагает мой ответ. Однако с годами ссылка прервалась (Apple изменила формат своей документации). Обновлена ​​ссылка, чтобы снова указать на это свойство. - person matt; 24.04.2017