2011-01-05 82 views
1

在我们的应用中,当其中一个视图被推送到导航控制器时,导航栏可见5秒,然后我们将navigationBarHidden设置为TRUE。稍后如果用户点击屏幕,我们切换navigationBarHidden值。但是,当导航栏ID隐藏或变得可见时,视图分别为这些动作上下跳跃。隐藏导航栏时查看跳转

有没有什么办法可以防止视图在酒吧被隐藏或显示时跳跃?

感谢和问候, Hetal

回答

3

您是否使用setNavigationBarHidden:setNavigationBarHidden:animated:

尝试[navigationController setNavigationBarHidden:NO animated:YES];

如果问题是视图改变大小,那么你将不得不考虑在视图本身,即它必须能够处理这两个大小。

+0

动画似乎在iPhone上而不是在iPad上运行。你知道为什么吗? – CedricSoubrie 2011-11-08 17:00:28

5

我有同样的问题。在我的项目中,这是因为视图是滚动视图。如果你的视图是滚动视图或表格视图,你可以试试这个:

我将下面的代码添加到控制器。

self.automaticallyAdjustsScrollViewInsets = NO; 

希望它能帮助你。

+0

谢谢。它可以帮助我收集视图:) – 2017-08-06 04:31:57

1

我意识到这是一个古老的对话,但我在iOS 11中遇到了一些以前工作的代码的问题,这是我在Google中第一次获得的结果。

在我的情况,我有一个视图控制器与导航控制器。该视图包含滚动视图。

如果滚动视图全部放大,滚动位置将在导航栏隐藏/显示动画之后跳转。

设置self.automaticallyAdjustsScrollViewInsets = NO/false没有工作(它通过iOS 10完成)。

经过大量的讨论后,我意识到UIScrollView中有一个名为contentInsetAdjustmentBehavior的新属性。

我不得不将它设置为“never”以获得所需的效果(即当显示/隐藏导航栏时滚动视图位置不会改变)。

在SWIFT它看起来像这样: self.scrollView?.contentInsetAdjustmentBehavior = .never

+0

你是如何使scrollview延伸到导航栏的顶部的(所以在导航栏隐藏时不会因为scrollview调整大小而跳转)? – Matt 2017-12-04 00:28:21

+0

我的故事板是建立在我的情况下,我有3个复选框检查视图控制器的“扩展边缘”设置:在顶部,底部和不透明的边缘。 – Devin 2017-12-05 17:48:07