Как повторить анимацию в ячейке collectionView или tableView? - PullRequest
0 голосов
/ 15 сентября 2018

Упрощенная версия моей проблемы - я пытаюсь зациклить / повторить анимацию для кнопки в ячейках collectionView, но анимация выполняется только один раз. Это мой блок анимации, расположенный в моей collectionViewCell:

func animateGlowingCircle() {
    UIView.animate(withDuration: 1.0, delay: 0, options: [.autoreverse, .repeat], animations: {
        self.glowCircle.transform = CGAffineTransform(scaleX: 1.2, y: 1.2)
    }, completion: nil)
}

Я пытался вызвать animateGlowingCircle () из нескольких разных мест: в viewDidLoad collectionViewController или cellForRowAt, а также из рисования collectionView. Самое близкое, что я могу получить - анимация выполняется только один раз, но она не зацикливается. Я нашел тонны информации в Интернете относительно одиночных анимаций, но ничего не было зациклено. Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 15 сентября 2018

Разобрался: анимация циклической ячейки должна вызываться из метода willDisplayCell из collectionViewController. Вот как то так:

// In collectionViewController    
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    let timerCell = cell as! TimerCollectionViewCell
    timerCell.animateGlowingCircle()  
}


// In collectionViewCell (this is the same code posted with the question)
func animateGlowingCircle() {
    UIView.animate(withDuration: 1.0, delay: 0, options: [.autoreverse, .repeat], animations: {
        self.glowCircle.transform = CGAffineTransform(scaleX: 1.2, y: 1.2)
    }, completion: nil)
}
...