我正在尝试在点击按钮时为 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.5 秒)。我尝试将持续时间更改为 10s 并且动画是相同的
我尝试在动画 block 中添加 self.view.layoutIfNeeded()
但没有效果。
你有什么想法吗?谢谢!
最佳答案
不要为 avPlayerLayer
的 opacity
设置动画,而是尝试为 customView
的 alpha
设置动画添加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()
。
关于ios - withDuration 在 UIView.animate 期间被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57920617/