CABasicAnimation On UItableViewCell - PullRequest
       7

CABasicAnimation On UItableViewCell

0 голосов
/ 29 декабря 2018

У меня есть страница списка и страница сведений. На моей странице списка есть UITableView.В моей табличной ячейке:

var buttonStyle: ButtonStyle = .Button {
    didSet {
        let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
        rotationAnimation.toValue = NSNumber(value: Double.pi * 2.0)
        rotationAnimation.duration = 2
        rotationAnimation.isCumulative = true
        rotationAnimation.repeatCount = Float.infinity
        rotationAnimation.isRemovedOnCompletion = false

        if oldValue != buttonStyle {
            switch buttonStyle {
            case .Button:
                self.loadingView.isHidden = true
                self.progressView.isHidden = true
                self.opertaionBtn.isHidden = false
                self.bringSubview(toFront: self.opertaionBtn)

            case .Loading:
                //self.loadingView.layer.add(rotationAnimation, forKey: "rotationAnimation")
                self.loadingView.isHidden = false
                self.progressView.isHidden = true
                self.opertaionBtn.isHidden = true
                self.bringSubview(toFront: self.loadingView)
            }
        }
    }
}

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

func addAnimation() {
    var anime = self.loadingView.layer.animation(forKey: "rotationAnimation") as? CABasicAnimation
    if anime == nil {
        anime = CABasicAnimation(keyPath: "transform.rotation.z")
        anime.toValue = NSNumber(value: Double.pi * 2.0)
        anime.duration = 2
        anime.isCumulative = true
        anime.repeatCount = Float.infinity
        anime.isRemovedOnCompletion = false
        self.loadingView.layer.add(anime, forKey: "rotationAnimation")
    }
}

И когда я возвращаюсь на страницу списка, я сначала устанавливаю buttonStyle и addAnimation().Это работает хорошо.Кто-нибудь знает почему?Спасибо!

...