【问题标题】:Animate AVPlayerLayer transform propertyAnimate AVPlayerLayer 变换属性
【发布时间】:2019-03-27 15:42:51
【问题描述】:

我不想用AVPlayerLayer 重现 Live Photo 缩放效果。为此我使用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
    })
}

【问题讨论】:

    标签: ios swift avfoundation core-animation avplayerlayer


    【解决方案1】:

    似乎AVPlayerLayer 忽略了许多CALayer 属性,并且扩展VideoView 的唯一方法是更改​​它的frame

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 2021-04-12
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      相关资源
      最近更新 更多