【问题标题】:View jumps when navigation bar is hidden/shown导航栏隐藏/显示时视图跳转
【发布时间】:2019-03-12 14:02:20
【问题描述】:

当我们的标签出现时。有谁知道当我们隐藏和显示导航栏时如何解决跳转问题。我尝试了很多事情它不起作用。最后,我为我的顶部标签添加了一个布局约束,我给出了一个常数,不要跳过它,但这个常数不适用于其他设备。任何人都可以帮助我修复视图跳转或如何动态设置顶部约束,以便在其他设备上不会出现问题。

【问题讨论】:

  • 有没有机会说得更具体些?也许有代码?我们可以复制的东西?为了提供帮助,如果您能具体说明问题,它确实会有所帮助。
  • 我不知道如何将我的本地项目附加到堆栈溢出中。步骤是:我刚刚创建了一个带有故事板的 vc,它作为标签和 2 个按钮,当我加载该 VC 时,我需要对导航栏进行动画处理。所以我只是在做self.navigationcontroller?.setNavigationBarHidden(true, animated:true) in view 会出现,我写self.navigationcontroller?.setNavigationBaraHidden(false.”,animated: true) in view 确实出现了。而已。当我在动画开始之前加载屏幕时,我的顶部标签上升了 44 Pxs,当我的导航栏出现时,它设置为正常。
  • 我只是想知道他们是否有任何方法可以解决此问题。这样当我隐藏和显示带有动画的导航栏时,我的视图就不会跳转。我想我上面的 cmets 可以帮助您了解我面临问题的步骤。

标签: ios swift uiview uinavigationcontroller


【解决方案1】:

您可以尝试将该常数作为比率而不是硬编码的数字。例如,假设您的约束被称为viewTopConstraint,然后您将其更新为视图的 10%:

viewTopConstraint.constant += self.view.frame.size.height/10

这将始终更新当前设备的约束常量。你不应该有问题的设备副。当然,您应该尝试该值以找出适合您的百分比。

【讨论】:

  • 您好,感谢您的回答,我正在尝试将顶部约束设置为故事板中的顶部标签。当我隐藏导航栏并释放我的常量并设置回正常时,我正在设置常量值 184 会出现在视图中,因为当我显示导航栏时确实会出现视图中的 124。因此,它修复了 iPhone 和 iPhone plus 设备中的跳转问题,我发现的唯一问题是 iPhone X 和 iPhone SE,所以我可能会尝试您的解决方案,看看是否可行。
  • 在正在工作的设备上打印(self.view.frame.size.height),然后分别得到184和124与设备高度的比例,然后应用该比例。之后,iPhone X 和 SE 也应该没问题。
  • 也只是想问你知道我们如何在隐藏/显示导航栏时修复视图跳转。我的意思是不添加约束。
  • self.navigationController?.setNavigationBarHidden(true, animated: false) 试试这样,如果“animated”设置为false,它可能不会跳转。
  • 我需要动画。当我遇到这个跳转问题时,我希望导航栏可以动画化。我设置动画为真
猜你喜欢
  • 2011-06-04
  • 2011-05-30
  • 1970-01-01
  • 2016-03-29
  • 1970-01-01
  • 2015-01-26
  • 2012-08-24
  • 1970-01-01
  • 2019-02-25
相关资源
最近更新 更多