Я пытаюсь установить размер/кадр видео, которое я показываю в своем представлении, используя AutoLayout. Но я не могу понять, как это сделать правильно. Это код для моего представления:
import UIKit
import AVKit
class VideoMeetingView: UIView {
lazy var playerLayer: AVPlayerLayer = {
let layer = AVPlayerLayer()
return layer
}()
private lazy var videoView: UIView = {
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor = .blue
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = #colorLiteral(red: 0.5725490451, green: 0, blue: 0.2313725501, alpha: 1)
self.addSubviewsAndConstraints()
playerLayer.frame = videoView.bounds
videoView.layer.addSublayer(playerLayer)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func addSubviewsAndConstraints() {
self.addSubview(videoView)
videoView.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
videoView.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
videoView.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
videoView.heightAnchor.constraint(equalToConstant: 600).isActive = true
}
}
Если я распечатаю значения videoView.bounds
, это будет просто (0, 0, 0, 0)
, поэтому я предполагаю, что AutoLayout не обновляет значение, как я сначала подумал.
Если я устанавливаю размер playerLayer.frame
вручную с помощью CGRect
, все работает как надо. Но я хочу использовать AutoLayout.
Итак, как я могу установить размер AvPlayerLayer
с помощью AutoLayout?