我正在尝试为AVPlayerLayer的不透明度设置动画效果。这是我的功能:
@IBAction func boutonTapped(_ sender: UIButton) {
if(paused){
UIView.animate(withDuration: 5.0, animations: {
self.avPlayerLayer.opacity = 1.0
}, completion: nil)
//avPlayer.play()
}else{
UIView.animate(withDuration: 5.0, animations: {
self.avPlayerLayer.opacity = 0
}, completion:nil)
//avPlayer.pause()
}
paused = !paused
}
启动了不透明度动画,但它的速度非常快(约0.5s)。我尝试将持续时间更改为10秒,并且动画是相同的
我试图在动画块内添加
self.view.layoutIfNeeded()
无效。你有什么主意吗?谢谢 !
最佳答案
代替对opacity
的avPlayerLayer
进行动画处理,请尝试对要添加alpha
的customView
的avPlayerLayer
进行动画处理,即
@IBAction func boutonTapped(_ sender: UIButton) {
UIView.animate(withDuration: 5.0) {
self.customView.alpha = paused ? 1.0 : 0.0 //here...
paused ? self.avPlayer.play() : self.avPlayer.pause()
}
paused = !paused
}
无需调用
self.view.layoutIfNeeded()
。