Я пытаюсь анимировать первое появление ячейки в представлении коллекции так же просто, как ZoomOut + Fade IN ячеек при первом вызове представления коллекции.
Я НЕ разделял UICollectionViewFlowLayout
на подклассы, поскольку не думал, что это необходимо для такого небольшого действия, и мне не нужно дополнительно аннулировать макеты после отображения ячеек. На самом деле нет никакой анимации клетки после их первого появления. Чтение руководящих принципов разработчика Apple по этому вопросу, кажется, подтверждает, что я не должен идти по маршруту подкласса, но все же я не нашел, как выполнить нужную мне анимацию.
Я играл по линии определения клеток с использованием методов UICollectionViewDelegateFlowLayout
, затем выполнял последовательность CGAffineTransform в collectionView(_ collectionView: willDisplay cell: forItemAt indexPath: IndexPath)
из UICollectionViewDelegate
, и правильное преобразование действительно происходило. Затем я подумал об обратном преобразовании, вызвав простой CGAffineTransform.Identity()
в анимации, но я еще не нашел, где (в каком из методов классов CollectionView) его разместить.
Заранее благодарим вас за помощь короля!
Спасибо за предложение @canister_exister, но где мне разместить анимацию?
Я использую awakeFromNib () в своем классе customCell
Я не использую InterfaceBuilder (полный код для collectionView). Следовательно, переопределение awakeFromNib () может просто никогда не произойти :(
Я нашел рабочее решение, поместив анимацию прямо в метод collectionView(_ collectionView: cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
. Если кто-то найдет что-то более эффективное / элегантное, я буду рад попробовать!
Попробуйте анимировать содержимое коллекцииViewCell, а не ячейку