Iphone 导航栏隐藏时视图跳转

Iphone 导航栏隐藏时视图跳转,iphone,ipad,uiview,uinavigationcontroller,uinavigationbar,Iphone,Ipad,Uiview,Uinavigationcontroller,Uinavigationbar,在我们的应用程序中,当其中一个视图被推送到导航控制器时,导航栏可见5秒钟,然后我们将navigationBarHidden设置为TRUE。稍后,如果用户点击屏幕,我们将切换navigationBarHidden值。但当导航栏id隐藏或可见时,视图将分别为这些操作上下跳跃 有什么方法可以防止在隐藏或显示栏时视图跳转 感谢和问候, Hetal您使用的是设置导航栏隐藏:还是设置导航栏隐藏:动画: 尝试[navigationController设置NavigationBarHidden:否动画:是] 如

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

有什么方法可以防止在隐藏或显示栏时视图跳转

感谢和问候,
Hetal

您使用的是
设置导航栏隐藏:
还是
设置导航栏隐藏:动画:

尝试
[navigationController设置NavigationBarHidden:否动画:是]


如果问题是视图改变大小,那么您必须在视图本身中考虑这一点,即它必须能够处理两种大小。

我也有同样的问题。在我的项目中,这是因为视图是滚动视图。如果您的视图是滚动视图或表格视图,您可以尝试以下操作:

我向控制器添加以下代码

self.automaticallyAdjustsScrollViewInsets = NO;

希望它能帮助你。

我意识到这是一个老话题,但我在iOS 11中遇到了一些以前使用过的代码的问题,这是我在Google中得到的第一个结果

在我的例子中,我有一个带有导航控制器的视图控制器。该视图包含一个滚动视图

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

设置self.automaticallyAdjustsScrollViewInsets=NO/false
不起作用(通过iOS 10完成)

经过多次修改,我意识到UIScrollView中有一个名为contentInsetAdjustmentBehavior的新属性

我必须将其设置为“从不”以获得所需的效果(即,在显示/隐藏导航栏时,滚动视图位置不会改变)

在swift中,它如下所示:
self.scrollView?.contentInsetAdjustmentBehavior=。决不要在SwiftUI中使用隐藏()方法,创建标题很重要,即使是空标题。如果使用NavigationLink,请对两个视图应用方法以避免“跳跃”效果


该动画似乎在iPhone上运行,但在iPad上不起作用。你知道为什么吗?谢谢。它对我的集合视图有帮助:)你是如何使scrollview扩展到导航栏的顶部的(这样当导航栏隐藏时,就不会因为scrollview的大小调整而发生跳转)?我的视图构建在故事板中,在我的例子中,我选中了视图控制器“扩展边”设置的所有3个复选框:在顶部,底部和不透明边缘。
 .navigationBarTitle("")   
 .navigationBarHidden(true)
 .labelsHidden()