gpt4 book ai didi

iphone - UINavigationBar 出现在 StatusBar 下

转载 作者:行者123 更新时间:2023-12-03 18:25:30 25 4
gpt4 key购买 nike

我正在尝试制作一个类似于照片应用程序的界面,其中状态栏和导航栏淡入/淡出,但我遇到了问题。如果我点击隐藏界面,然后旋转设备,然后点击将其恢复,则导航栏将重新定位在状态栏下方(参见照片)。如果我随后旋转设备,导航栏将返回到正确的位置。我该如何解决这个问题?

alt text

最佳答案

这可能来得有点晚,但我刚刚遇到了完全相同的问题。我正在设计一个全屏阅读器 View ,带有透明的状态栏、导航栏和工具栏,您可以通过点击屏幕中心来淡入和淡出。

我设法解决它的方法非常简单,基本上是问题的核心,如果这样:当您旋转 View 并且 NavigationController 重新计算其新位置时,它认为它应该位于窗口的顶部,因为状态栏是隐藏的。当您之后同时显示状态栏和导航栏时,它们会重叠。

解决这个问题的方法非常简单,只需保留一个 BOOL 来记住您的叠加层是显示还是隐藏,并在 ViewController 中实现 willRotateToInterfaceOrientation 和 willAnimateRotationToInterfaceOrientation 。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (!isOverlayShowing)
{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (!isOverlayShowing)
{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
}

通过在这两种方法中快速显示和隐藏 StatusBar,StatusBar 会在 NavigationBar 重新计算其位置的同时显示。我不知道这是否是解决此问题的最佳实现,但到目前为止,此方法有效,并且不会在屏幕上产生任何闪烁,并且非常流畅。

我希望遇到我的问题的其他人可能会偶然发现这篇文章并找到解决此问题的简单方法。

关于iphone - UINavigationBar 出现在 StatusBar 下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com