多个UIButton的旋转动画,animationDidStop怎么知道哪个停了?

Posted

技术标签:

【中文标题】多个UIButton的旋转动画,animationDidStop怎么知道哪个停了?【英文标题】:Rotation animation of multiple UIButtons, how can animationDidStop know which stopped? 【发布时间】:2014-11-14 10:32:45 【问题描述】:

我正在尝试让四个 UIButton 在 Swift 中旋转。我得到了这个:

import UIKit

extension UIView 

func rotate360Degrees(duration: CFTimeInterval = 1.0, completionDelegate: AnyObject? = nil) 
    let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
    rotateAnimation.fromValue = 0.0
    rotateAnimation.toValue = CGFloat(M_PI * 2.0)
    rotateAnimation.duration = duration

    if let delegate: AnyObject = completionDelegate 
        rotateAnimation.delegate = delegate
    
    self.layer.addAnimation(rotateAnimation, forKey: nil)


但我需要重复一遍。在我的 UIViewController 中,我使用了 animationDidStop 函数,但我怎么知道四个动画中的哪一个触发了它?它有一个名为 CAAnimation 的参数,但我无法将它与任何东西进行比较。有什么建议吗?

【问题讨论】:

【参考方案1】:

使用 CATransition 重写您的方法并使用此问题的解决方案: How to identify CAAnimation within the animationDidStop delegate?

【讨论】:

以上是关于多个UIButton的旋转动画,animationDidStop怎么知道哪个停了?的主要内容,如果未能解决你的问题,请参考以下文章

ios多个animation动画执行使用rotateY旋转重叠问题

带有 allowUserInteraction 的 UIView.animate 仅在动画的最后一帧中启用 UIButton

复位旋转动画 uibutton

使用 animate 标签为转换(旋转)的 SVG 组设置动画

CSS3 旋转动画导致 Animate.css 抖动动画消失

Tween Animation----Rotate旋转动画