问题只是详细说明了我真正想知道的内容。我想制作一个功能类似于SoundCloud和gaana的应用程序。在下面,我显示了gaana的一些屏幕截图。
ios - 如何在所有 View  Controller 中显示可自定义的 View ?-LMLPHP
在这里,如果我们单击任何歌曲,它们将自动更新上面的视图并播放该歌曲,并且此视图还将显示在所有视图控制器中。单击此向上箭头按钮,他们将如何显示新视图,而以前的小视图不在任何位置并加载新视图的集合视图。如何执行所有这些操作?新视图在这里。
ios - 如何在所有 View  Controller 中显示可自定义的 View ?-LMLPHP

最佳答案

您可以通过创建一个叠加层来做到这一点,即您将UIView作为子元素添加到应用程序的主要window中,如下所示:

override func viewDidAppear(_ animated: Bool) {
     super.viewDidAppear(animated)
     showOverlay()
}


func showOverlay() {
    guard let window = UIApplication.shared.keyWindow else {
        //if this block runs we were unable to get a reference to the main window
        print("you have probably called this method in viewDidLoad or at some earlier point where the main window reference might be nil")
        return
    }
    //add some custom view, for simplicity I've added a black view
    let blackView = UIView()
    blackView.backgroundColor = .black
    blackView.translatesAutoresizingMaskIntoConstraints = false
    blackView.frame = CGRect(x: 0, y: window.frame.height - 100, width: window.frame.width, height: 100.0)

    window.addSubview(blackView)
}

现在,此视图应始终浮动在当前UIViewController上方

关于ios - 如何在所有 View Controller 中显示可自定义的 View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44226359/

10-14 22:30
查看更多