我有一个在
CALayer
内播放的视频。一切正常,但当我转到 Debug View Hierarchy
时,播放视频的 CALayer
始终显示为空白。
为什么我看不到
CALayer
内 Debug View Hierarchy
上可见的视频帧?
class AVPlayerView: UIView {
var playerLayer: CALayer?
override func layoutSublayers(of layer: CALayer) {
super.layoutSublayers(of: layer)
playerLayer?.frame = self.bounds
}
}
lazy var avPlayerView: AVPlayerView = {
let playerView = AVPlayerView()
playerView.tag = 2
return playerView
}()
func setPlayerAndPlayerLayer(url: URL) {
let asset = AVAsset(url: url)
playerItem = AVPlayerItem(asset: asset)
player = AVPlayer(playerItem: playerItem)
contentView.addSubview(avPlayerView)
avPlayerView.frame = self.bounds
playerLayer.frame = avPlayerView.bounds
avPlayerView.layer.addSublayer(playerLayer!)
avPlayerView.playerLayer = playerLayer
avPlayerView.layoutIfNeeded()
}
这是可能的!使用可视化调试器时,可以在编辑器 -> 显示层中切换该功能。这会将层添加到调试导航器并选择它们,可以检查它们的属性。