如何重置子视图?

How to reset subviews?

按下按钮后,我有一个子视图开始使用以下内容播放视频:

@IBAction func cardboardButton(_ sender: UIButton) {

    if let button = self.videoVRView.subviews[2] as? UIButton {
        button.sendActions(for: .touchUpInside)


               }

}

which works like a charm, it launche a specific video player.

退出子视图时,我想重置它。目前,如果我退出子视图,然后重新启动它,它会从我离开的地方开始播放视频。我需要重置该子视图,以便从 0 重新启动视频。

我尝试了以下方法:

    @IBAction func cardboardButton(_ sender: UIButton) {

    if let button = self.videoVRView.subviews[2] as? UIButton {
        button.sendActions(for: .touchUpInside)
        let parent = self.videoVRView.subviews[2]
        self.videoVRView.removeFromSuperview()
        self.videoVRView = nil
        parent?.addSubview(self.videoVRView)

               }

}

没有任何成功...

有人对此有什么建议吗?

您在使用 AVPlayer 吗? AVPlayer 有方法:seekTo() 你可以在其中播放特定的一秒视频。这样它总是从 0 开始。

我不确定你想用你的代码做什么`

self.videoVRView.removeFromSuperview()
self.videoVRView = nil
parent?.addSubview(self.videoVRView)`

是的,您正在从超级视图中删除视图,然后再次添加它,但是播放器是否被销毁、创建并重新设置?因为这将使它从头开始。您正在添加视图,但您不会再次创建它,是吗?它被设置为零。