我不想用AVPlayerLayer
重现实时照片缩放效果。为此,我使用VideoView
:
class VideoView: UIView {
override class var layerClass: AnyClass {
return AVPlayerLayer.self
}
var playerLayer: AVPlayerLayer {
return layer as! AVPlayerLayer
}
var player: AVPlayer? {
get {
return playerLayer.player
}
set {
playerLayer.player = newValue
}
}
}
问题是,每当我试图在视频播放期间更改视图或层的
transform
属性时,没有任何更改。但这些更改将在播放完成后应用。动画示例:
func zoomIn() {
UIView.animate(
withDuration: 0.2,
delay: 0,
options: .allowAnimatedContent,
animations: {
self.transform = .init(scaleX: 1.1, y: 1.1)
},
completion: { _ in
})
}
最佳答案
似乎AVPlayerLayer
忽略了许多CALayer
属性,缩放aVideoView
的唯一方法是更改它的frame
。
关于ios - 动画AVPlayerLayer变换属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55381233/