【问题标题】:IOS Swift How can I add element on top of a SubViewIOS Swift如何在子视图上添加元素
【发布时间】:2018-09-25 01:39:30
【问题描述】:

我有一个 UIView,它在播放视频时会在其顶部添加一个子视图,我现在希望在该子视图之上添加显示全名和个人资料图像的元素。我正在接收数据,但我认为显示视频的子视图隐藏了它上面的元素。这是我下面的故事板,下面的黑屏是显示视频的 UIView,我显然在顶部有全名、时间和 UIImage 元素,但看不到它。我的约束也很好。这是我的代码。

class BookViewC: UIViewController { 

 var timeLineModel = TimeLineModel()
 var streamsModel = streamModel()
    @IBOutlet weak var Profile_Image: UIImageView!
    @IBOutlet weak var VideoView: UIView!
    @IBOutlet weak var FullName: UIButton!
    @IBOutlet weak var Time: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
       FullName.setTitle("John Higgins", for: .normal)
       Time.text = "2:30 pm"
        PlayVideo(MediaHeight: 400.0, MediaURL: "URL")
        Profile_Image.layer.cornerRadius = Profile_Image.frame.height / 2
        Profile_Image.clipsToBounds = true     
    }

    func PlayVideo(MediaHeight: Float, MediaURL: String) {
        let movieURL = URL(string: MediaURL)
        streamsModel.playerView = AVPlayer(url: movieURL!)
        streamsModel.MyAVPlayer.player = streamsModel.playerView
        streamsModel.MyAVPlayer.videoGravity = AVLayerVideoGravity.resizeAspectFill.rawValue
        streamsModel.MyAVPlayer.showsPlaybackControls = false
        streamsModel.MyAVPlayer.view.frame = VideoView.bounds
        // If comment out the line below the elements show but not the video
        VideoView.addSubview(streamsModel.MyAVPlayer.view)
        self.addChildViewController(streamsModel.MyAVPlayer)
        streamsModel.playerView?.isMuted = false
        streamsModel.MyAVPlayer.player?.play()
    }

}

我认为问题在于这一行姓名、时间和个人资料图像可见。是否可以在 SubView 之上添加这些元素?因为我已经看到其他一些应用程序这样做了?

【问题讨论】:

  • 您是否尝试过重新排序您的 xib 中的元素?视频视图可能位于其他视图之上。试着改变 zPosition 看看是不是这样。
  • 我认为标签、按钮、图像在VideoView 内。然后您将子视图添加到VideoView。所以新添加的视图会在顶部。
  • 试试VideoView.insertSubview(streamsModel.MyAVPlayer.view, at: 0)
  • 我可以尝试重新排序 xib 文件中的元素,是的,它们在 UIView VideoView 中,并且子视图位于顶部我只是想弄清楚如何让这些元素位于顶部那个子视图也是。
  • 可以查看这里设置查看顺序stackoverflow.com/questions/4631878/…

标签: ios swift swift4 avplayer addsubview


【解决方案1】:

我认为标签、按钮、图像在 VideoView 中。然后您已将子视图添加到 VideoView。所以新添加的视图会在顶部。

试试

VideoView.insertSubview(streamsModel.MyAVPlayer.view, at: 0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    相关资源
    最近更新 更多