iOS中控制CALayer动画的播放与暂停
iOS中控制CALayer动画的播放与暂停
在iOS开发中,我们经常需要对视图进行动画处理。CALayer是Core Animation框架中的核心类之一,它可以用来创建和管理视图的动画效果。但是,有时候我们需要手动控制动画的播放与暂停,这就需要对CALayer进行分类扩展。
实现方法
我们可以通过扩展CALayer类,添加控制动画播放与暂停的方法。
import UIKit
extension CALayer {
func pauseAnimation() {
let pausedTime = convertTime(CACurrentMediaTime(), from: nil)
speed = 0.0
timeOffset = pausedTime
}
func resumeAnimation() {
let pausedTime = timeOffset
speed = 1.0
timeOffset = 0.0
beginTime = 0.0
let timeSincePause = convertTime(CACurrentMediaTime(), from: nil) - pausedTime
beginTime = timeSincePause
}
}
使用示例
// 暂停动画
yourLayer.pauseAnimation()
// 恢复动画
yourLayer.resumeAnimation()
通过这个扩展,我们可以方便地控制CALayer上的动画播放与暂停。
控制动画的CALayer分类.zip
预估大小:2个文件
CALayer+PauseAimate.m
719B
CALayer+PauseAimate.h
332B
1.6KB
文件大小:
评论区