animationRunning怎么获得
时间: 2023-05-23 10:07:13 浏览: 63
animationRunning可以通过以下几种方式获取:
1. 通过代码创建动画并设置一个布尔值属性来控制动画是否正在运行,如下所示:
```
var animationRunning = false
UIView.animate(withDuration: 0.5, animations: {
// 动画代码
}, completion: { _ in
animationRunning = false
})
animationRunning = true
```
2. 在使用第三方动画框架时,这些框架通常提供了一个回调函数,该函数在动画完成后被调用。可以设置布尔值来表示动画是否正在运行,如下所示:
```
var animationRunning = false
UIView.animate(withDuration: 0.5, animations: {
// 动画代码
}){ _ in
animationRunning = false
}
animationRunning = true
```
3. 如果你使用的是基于CALayer的动画,你可以在CALayer的代理方法中设置一个标志来表示动画是否正在运行,如下所示:
```
class MyLayerDelegate: NSObject, CALayerDelegate {
var animationRunning = false
func animationDidStart(_ anim: CAAnimation) {
animationRunning = true
}
func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
animationRunning = false
}
}
let delegate = MyLayerDelegate()
let layer = CALayer()
layer.delegate = delegate
animationRunning = true
layer.add(animation, forKey: "MyAnimation")
```
在这种情况下,你需要使用一个CALayer的delegate来管理你的动画,并在代理方法中设置一个布尔值来表示动画是否正在运行。当动画开始时,`animationDidStart`方法将被调用,将布尔值设置为`true`。当动画完成时,`animationDidStop`方法将被调用,并将布尔值重新设置为`false`。