我不想用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/

10-10 21:08