2017-05-28 70 views
1

这个问题稍微详细说明了我真正想知道的内容。我想创建一个功能看起来像SoundCloud和gaana的应用程序。在这里下面我显示gaana的一些截图。如何在所有视图控制器中显示可定制的视图?

enter image description here

这里如果我们点击任何一首歌曲会自动更新上述观点并播放这首歌,也是这个视图将显示为所有视图controller.Clicking这个向上箭头按钮他们如何展示了一个新的图,其中以前的小视图没有位置,并且也将一个集合视图加载到这个新视图中。要完成所有这些操作,新视图就在这里。

enter image description here

+0

你可以用popover来做到这一点,并将锚点设置为你的按钮。 – Adrian

+0

你可以请一些代码和图片解释我吗?它会帮助我很多。我可以弹出一个视图来点击一个按钮,但我的球员保持在同一个地方,而且在这个视图中,我需要有一个收集视图来显示推荐歌曲。 – Rumy

+0

https://makeapppie.com/tag/popover-in-swift/ – Adrian

回答

0

你可以通过创建一个叠加,即你作为一个子元素添加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

+0

我可以使用我知道的keywindow来添加这个视图。但点击向上按钮,它会创建一个新的视图,其中以前的视图已经不存在了。我也可以通过编程方式执行它,但是新窗口具有集合视图或表视图。表视图也可以正确显示,但数据源不会到达此处。在索引路径行的单元格不是调用。为什么发生这种情况我不知道。请你测试这个并回答我?感谢您的帮助。 – Rumy

+0

恐怕我不太明白你的问题。你能否用更详细的描述来更新你的问题。请注意语法。 – slashburn

+0

谢谢你的帮助,我现在可以解决它。 – Rumy

相关问题