NavigationController中的UIScrollView忽略顶部布局指南

时间:2014-05-07 09:26:21

标签: ios uiscrollview autolayout

我已经看到了有关自定义转换(iOS7 Custom ViewController transition and Top Layout GuideNavigation controller top layout guide not honored with custom transition)的类似问题,但即使定期推送也存在问题。我现在使用最新的Xcode(版本5.1.1(5B1008))。

这是我的故事板: storyboard 第3个VC出现问题

以下是第3个VC设置: enter image description here

我的第三个控制器的布局如下:

UIView
 UIScrollView
  InnerUIView
    Other views

我尝试了两种不同的方式来创建布局:

忽略顶部布局指南(由于导航栏,y = 64)

我将scrollview的顶部固定到容器(忽略topLayoutGuide),手动设置内部视图的高度并将其顶部固定为scrollView。它给了我以下结果: enter image description here

看起来很好,但为什么我需要顶部布局指南呢?

使用topLayout指南

ScrollView的顶部固定在topLayoutGuide上。 enter image description here

如您所见,顶部按钮向下移动,视图看起来很奇怪。

创建此类布局的正确方法是什么?

2 个答案:

答案 0 :(得分:8)

我遇到了同样的问题,花了几个小时把头发拉出来。 我在scrollview中的容器视图有奇怪的顶部偏移,尽管它有顶部约束集。 我找到的解决方法 - 您必须在控制器布局选项中取消选中Adjust Scroll View Insets

enter image description here

这样内容视图(在我的情况下)仍然固定在scrollview的顶部。

不幸的是,我无法找到对此行为的任何合理解释。

答案 1 :(得分:1)

在我的情况下,Xcode 7和8,我必须取消选中我的导航视图控制器中的视图的'调整滚动视图插图'。是的,在我想出这个之前浪费了太多时间。

编辑:Apple已经发现我们已经找到了解决方案,因此他们在XCode 9和10中再次设法解决了这个问题,让我们的开发人员不再赘述。尚未找到解决方案。

enter image description here