我有一个 UITableViewCell,它有一个 UILabel 和一个 AVPlayer,可以播放我需要实现的在线视频。问题是Apple提供的AVPlayer无法使用自动布局来正确显示视频。
我相信有一些方法可以实现混合约束和框架布局的 UIView。不过,我认为这个问题还有更多内容:视频未在 init 上加载这一事实似乎存在问题。
UITableViewCell
import UIKit
import AVKit
import AVFoundation
class PlayerView: UIView {
var player: AVPlayer? {
get {
return playerLayer.player
}
set {
playerLayer.videoGravity = .resizeAspect
playerLayer.player = newValue
}
}
var playerLayer: AVPlayerLayer {
return layer as! AVPlayerLayer
}
override static var layerClass: AnyClass {
return AVPlayerLayer.self
}
}
class CustomTableCell: UITableViewCell {
let titleView = UILabel()
let containerView = UIView()
let playerView = PlayerView()
required init?(coder aDecoder: NSCoder) …Run Code Online (Sandbox Code Playgroud)