当UIStatusBar隐藏在应用程序中时,所有视图的原点都是(0,0),即屏幕的左上角。但是,当显示statusBar时,原点仍为(0,0),但视图将向下移动,以便不覆盖statusBar。
这是如何工作的?是否可以在代码中复制此效果?
基本上,我的最终目标是隐藏statusBar并在应用程序的某些位置(如谷歌应用程序)用UIView替换它。但是我有很多观点,并且不想在隐藏statusBar之后调整所有观点。
答案 0 :(得分:2)
您可以创建一个包含所有“普通”视图的容器视图,并在任何地方设置自动调整大小的掩码。这样,缩小容器视图将自动调整其他所有内容。实际上,这就是UIViewControllers的工作方式。但请注意,虽然像UINavigationController这样的标准Apple控制器知道如何处理状态栏,但他们对你想做什么一无所知,因此他们会经常被混淆。
或者,您始终可以在真实状态栏下方显示自己的状态栏,并在需要时隐藏后者。但在这种情况下,您将不得不与Apple提供的控制器进行对抗,当您隐藏状态栏时,这些控制器会尝试扩展。您还可以使用双窗口布局,其中顶部窗口不会与状态栏重叠,但我不确定它会更容易。
由于Apple不支持上述任何一项,因此预计会有很多事情无法正常运行。也许,最好的方法是重新考虑你的UI设计。