6

每次视图转接时,如何制作似乎没有重新加载(停留在屏幕上)的视图?就像 Apple 的 iOS 播客应用程序中的音频控件一样。查看图片以查看我引用的音频控件。

我如何在情节提要中做到这一点?

在此处输入图像描述

4

2 回答 2

9

您所指的通常称为“迷你播放器”,您也可以在许多其他应用程序中找到它。

您应该使用的技术称为“UIViewController Containment”,在情节提要中,它可以作为“Container View”和“Embed Segues”访问。

典型的故事板可能如下所示:

  • 根视图控制器有两个容器视图添加到它的视图。
  • 容器视图具有视图控制器的 segues。在视图中
  • 下一个控制器,设置迷你播放器。
  • 上层容器的视图控制器嵌入了一个导航控制器和一个标签视图控制器。

屏幕

这将创建视图控制器层次结构。

要实现播放器本身,请创建一个播放器类,您在应用程序委托中实例化该播放器类并将其传递给根 vc 上的属性。从那里将它传递给迷你播放器视图控制器和上层视图控制器,它将包含歌曲/播客/...的列表以供选择。在选择时将帽子歌曲传递给玩家类。


我在 GitHub 上发布了一个示例应用程序:https ://github.com/vikingosegundo/HearThisMiniplayer

屏幕

于 2016-12-28T20:06:14.377 回答
2

我认为您可以将其添加到应用程序窗口之上(这是 UIWindow,UIView 的子类)

UIView *myView = /* <- Your custom view */;
UIWindow *currentWindow = [UIApplication sharedApplication].keyWindow;
[currentWindow addSubview:myView];

https://stackoverflow.com/a/21850538/1947419获取代码

或者您可以直接添加到 UITabBarController.view,因为它的 UIView 跨越整个屏幕。

不过,您需要为它制作自定义视图。

于 2016-12-27T18:53:09.913 回答