小编Yoo*_*ama的帖子

UITableViewCell 内的 AVPlayer 与其他视图自动布局

我有一个 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)

uitableview ios avplayer autolayout swift

5
推荐指数
1
解决办法
1781
查看次数

标签 统计

autolayout ×1

avplayer ×1

ios ×1

swift ×1

uitableview ×1