当主视图切换时,如何使视图保持在屏幕上?

Posted

技术标签:

【中文标题】当主视图切换时,如何使视图保持在屏幕上?【英文标题】:How do I make a view that stays onscreen when the main view segues? 【发布时间】:2016-12-27 17:07:24 【问题描述】:

如何使每次视图切换时看起来都不会重新加载(停留在屏幕上)的视图?就像 Apple 的 ios 播客应用程序中的音频控件一样。查看图片以查看我引用的音频控件。

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

【问题讨论】:

我从未使用过 Apple 的 Podcast 应用程序,所以我不太确定您在问什么,但这有帮助吗? ***.com/a/33179604/341994 我可以在每次转场时重建控件,但如果可能的话,我想防止它们被重建。 仅供参考,如果您在i.stack.imgur.com/s1yuZ.png 的末尾添加一个“l”(L 不是 I),即设为i.stack.imgur.com/s1yuZl.png,那么图像会更小一点,也许更好:D 太棒了!不知道。 关于如何实现将这个迷你播放器拖到上面提到的播客应用程序中扩展到全屏的任何想法? 【参考方案1】:

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

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

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

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

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

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


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

【讨论】:

请注意,我将新版本推送到 GitHub,使用了更好的约束。【参考方案2】:

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

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

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

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

你需要为它制作自定义视图。

【讨论】:

以上是关于当主视图切换时,如何使视图保持在屏幕上?的主要内容,如果未能解决你的问题,请参考以下文章

当一个新的视图控制器被推送到导航控制器时,将一个子视图保持在屏幕上的同一位置?

图像视图在 3.5 和 4 英寸屏幕上更改高度

如何保持动画在 TabView 视图变化上运行?

如何保存uitextfield以使文本保持从视图控制器到视图控制器

如何在 MKMapView 中将图钉和地图保持在移动叠加层上方的中心

切换到视图控制器 B 后如何保持视图控制器 A 的状态?