如何在Swift中将cornerRadius添加到AVPlayerViewController?

moh*_*kan 4 ios swift avplayerviewcontroller

我正在使用编写的视频播放器应用程序Swift

我的问题是我应该使AVPlayerViewController弯道弯曲。但我只想使用AVPlayerViewController任何其他类。

我现在做了什么:

fileprivate func setupPlayer() {
    let player = AVPlayer(url: videoURL)
    let playerViewController = AVPlayerViewController()
    playerViewController.view.frame = CGRect.init(x: xPosition,
                                                  y: yPosition,
                                                  width: 200,
                                                  height: 100)
    playerViewController.player = player
    self.addChild(playerViewController)
    self.view.addSubview(playerViewController.view)
    playerViewController.didMove(toParent: self)
    playerViewController.videoGravity = AVLayerVideoGravity.init(rawValue: "")
    playerViewController.view.backgroundColor = UIColor(displayP3Red: 0/255, green: 0/255, blue: 0/255, alpha: 0)
    playerViewController.view.layer.cornerRadius = 20
    playerViewController.contentOverlayView?.isHidden = true
    playerViewController.contentOverlayView?.alpha = 0
}
Run Code Online (Sandbox Code Playgroud)

问题:

我已经拥有的是: 在此处输入图片说明

解决方案示例:

但我想在Appstore中有一些曲线:

在此处输入图片说明

Yan*_*iot 5

AVPlayerViewController您的视图增加了一个子层。设置playerViewController.view.layer.cornerRadius属性时,它只会影响它,而不会影响它的孩子。

在此处输入图片说明

要解决此问题,您必须使用masksToBoundslayer属性裁剪子视图(或此处的子图层)。

playerViewController.view.layer.masksToBounds = true
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明