OGeek|极客世界-中国程序员成长平台

标题: ios - 如何在所有 View Controller 中显示可自定义的 View ? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 19:46
标题: ios - 如何在所有 View Controller 中显示可自定义的 View ?

这个问题有点详细,我真正想知道什么。我想做一个应用程序,它的某些功能看起来像 SoundCloud 和 gaana。下面我展示一些 gaana 的截图。

enter image description here

在这里,如果我们单击任何歌曲,它们会自动更新上面的 View 并播放歌曲,并且此 View 将显示到所有 View Controller 中。单击此向上箭头按钮,它们如何显示一个新 View ,而以前的小 View 不在其中并将 Collection View 加载到这个新 View 中。如何执行所有这些操作?新 View 就在这里。

enter image description here



Best Answer-推荐答案


您可以通过创建叠加层来做到这一点,即将一个 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)
}

现在这个 View 应该总是 float 在当前的UIViewController

之上

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






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4