Как мне анимировать UICollectionViewCells, используя Swift? - PullRequest
0 голосов
/ 23 октября 2018

В настоящее время я пытаюсь заставить свои клетки анимироваться в раскадровку по одному.

override func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    cell.alpha = 0
    cell.layer.transform = CATransform3DMakeScale(0.5, 0.5, 0.5)
    UIView.animate(withDuration: 1.0, animations: { () -> Void in
        cell.alpha = 1
        cell.layer.transform = CATransform3DScale(CATransform3DIdentity, 1, 1, 1)
    })
}

Это код, который я сейчас использую.Однако, это позволяет мне запускать анимацию сразу на всех ячейках.Я хотел бы, чтобы ячейки 1, 2, 3 и 4 анимировались в этом порядке.Любые идеи о том, как я мог бы пойти по этому поводу?Если есть лучший путь, то, пожалуйста, скажите мне, если есть.

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Я рекомендую вам создать представление с упорядоченной анимацией и использовать только UIView, а не UICollectionView.Когда анимация будет завершена, вы сможете показать свой настоящий UICollectionView.

0 голосов
/ 23 октября 2018
override func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {

    cell.alpha = 0
    cell.layer.transform = CATransform3DMakeRotation(10, 1, 1, 0)
    UIView.animate(withDuration: 1.0, delay: 1.0*Double(indexPath.row),animations: { () -> Void in
    cell.alpha = 1

        cell.layer.transform = CATransform3DScale(CATransform3DIdentity, 1, 1, 1)
    })
}

После добавления

 delay: 1.0*Double(indexPath.row)

это решило мою проблему, и теперь представление оживляет их по порядку.@Syed Faraz Haider Zaidi

0 голосов
/ 23 октября 2018

вы можете использовать опции повтора и автореверса.

UIView.animate(withDuration: 2.0, delay: 0, options: [.repeat, .autoreverse], animations: {
  cell.alpha = 1
        cell.layer.transform = CATransform3DScale(CATransform3DIdentity, 1, 1, 1)

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