Свойство Animate AVPlayerLayer для преобразования - PullRequest
1 голос
/ 27 марта 2019

Я не хочу воспроизводить эффект увеличения живого фото с помощью 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
    })
}

1 Ответ

0 голосов
/ 02 мая 2019

Похоже, AVPlayerLayer игнорирует многие из CALayer свойств, и единственный способ масштабировать VideoView - изменить его frame.

...