【问题标题】:iOS 7 popViewControllerAnimated shifting entire view upwardsiOS 7 popViewController 动画向上移动整个视图
【发布时间】:2013-12-21 12:32:53
【问题描述】:

仅在 iOS 7 上遇到问题。在一个屏幕上,我有一个返回到 tableview 的后退按钮。该后退按钮的代码是[self.navigationController popViewControllerAnimated:YES];,但我看到一个问题,当我点击返回时,我返回的屏幕上的所有内容都向上移动(内容移动到它应该在的位置,但首先打开查看它单击返回后,它在屏幕上的位置低于应有的位置,然后向上滑动)。以前在 iOS 6 中,它做了你所期望的动画,新旧屏幕从左到右移动,但是向上移动的内容是新的,我不知道是什么原因造成的。我将动画设置为 NO,虽然它确实停止了它,但我也失去了我想要的从左到右的效果,而且它看起来非常生涩,屏幕到屏幕。关于如何在不改变我的内容的情况下获得正常的从左到右幻灯片的任何想法?

【问题讨论】:

  • 你发现了吗?我现在看到了同样的问题。

标签: ios iphone objective-c uiview


【解决方案1】:

如果你有两个 VC,VC1 和 VC2 如果你在 VC2 上使用。

[self.navigationController popViewControllerAnimated:YES];

检查你需要将导航栏放在顶部的 VC1 的 xib。

【讨论】:

  • 您好,感谢您的快速回复,但我有点困惑。代码是我已经拥有的那行。你能澄清一下你对视图控制器的看法吗?
  • 您只需要在UI的XIB/nib文件顶部添加一个UINavigationBar即可。
  • 我有一个以编程方式构建的自定义导航栏,我不确定是否可以在 nib 中添加一个。你知道这将如何解决内容的变化吗?看起来它发生在 viewwillappear 和 viewdidappear 之间
【解决方案2】:

这听起来像是一个自动布局问题。确保 AutoLayout 已关闭,并将以下内容添加到 viewDidLoad:

[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];

【讨论】:

  • 非常感谢您的帮助。我的笔尖关闭了自动布局,我添加了那条线,但我仍然看到一切都发生了奇怪的变化,我可以看出它在 viewwillappear 和 viewdidappear 之间发生。
  • 另一件事可能是导航栏在 iOS 7 中是半透明的:尝试将导航栏设置为非半透明:[self.navigationController.navigationBar setTranslucent:NO]
  • 感谢娜塔莎,很遗憾没有这样做。我继承了很多这样的东西,所以可能会有一些东西埋在生病的地方。一个注意事项是我使用 6.1 作为基础 sdk,因为我现在需要。当我更改为 7 时它消失了
猜你喜欢
  • 2014-04-20
  • 2016-11-15
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
相关资源
最近更新 更多