繁体   English   中英

如何使objectAtIndex:0始终可见?

[英]How to make objectAtIndex:0 always visible?

我正在尝试创建UIView,它需要在整个应用程序中可见。 只有这样,我才能做到这一点,将addSubview添加到UIWindow *window = [[UIApplication sharedApplication].windows objectAtIndex:0] 。我正在AppDelegate做到这一点。 到目前为止,一切都很好。

 window = [UIApplication sharedApplication].keyWindow;
[[[window subviews] objectAtIndex:0] addSubview:myView];

这是左下角的一个小uiview。 在这种情况下,我想播放视频,同时可以在后台执行其他操作。 但是当我推另一个ViewController甚至更改rootViewController ,它消失了,我需要再次添加它。

rootViewController是否添加到objectAtIndex:0或当我更改rootViewController ,它删除了所有内容? 我尝试过,在消失的任何地方都读过它,但是最有效的解决方法是! 换句话说,如何添加它而不会丢失它?

它消失了还是在其之上添加了新视图?

通常,当前视图控制器将始终在窗口顶部显示其自己的视图。

如果您要显示带有图像的背景视图,则默认情况下可以使用一种方法在所有屏幕上保留背景图像...您必须将其添加到窗口层,

self.view.window.layer.contents = (id)[backgroundImage CGImage];

我认为您无法创建一个浮动在应用程序中每个视图控制器顶部的视图。 视图和视图控制器应该起作用的方式与苹果的设计背道而驰。

您可以使您的应用程序成为单个视图控制器应用程序,并且该视图控制器具有容器视图屏幕大小。 然后,您可以使用嵌入segue将应用程序的“真实视图控制器树”嵌入到该容器视图中。然后,可以将浮动视图放在该最顶部的视图控制器上,并获得所需的效果。

创建一个新的UIWindow并给它足够高的windowLevel (即UIWindowLevelStatusBar应该可以解决问题)。 然后将想要显示的视图添加到窗口中,最后通过将hidden属性设置为NO使其可见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM