Ios 来自故事板的UIScrollView子视图。为什么在顶部和左侧额外增加20像素?

Ios 来自故事板的UIScrollView子视图。为什么在顶部和左侧额外增加20像素?,ios,swift,uiscrollview,uistoryboard,nslayoutconstraint,Ios,Swift,Uiscrollview,Uistoryboard,Nslayoutconstraint,我的观点分为四个部分。左上角的角视图(未使用,不可见);顶部的水平视图(代码中的timelineAreaView)显示一组轴标签;左侧的垂直视图显示另一组轴标签,视图的其余部分是大型集合视图。这和电子表格没什么不同 问题是我试图在俯视图中使用UIScrollView。如果我在顶部添加一个测试视图,一切都很好。代码如下: let timelineViewController = self.storyboard?.instantiateViewControllerWithIdentifier

我的观点分为四个部分。左上角的角视图(未使用,不可见);顶部的水平视图(
代码中的timelineAreaView
)显示一组轴标签;左侧的垂直视图显示另一组轴标签,视图的其余部分是大型集合视图。这和电子表格没什么不同

问题是我试图在俯视图中使用UIScrollView。如果我在顶部添加一个测试视图,一切都很好。代码如下:

    let timelineViewController = self.storyboard?.instantiateViewControllerWithIdentifier("TimelineViewController") as? TimelineViewController
    addChildViewController(timelineViewController!)
    timelineAreaView.addSubview(timelineViewController!.view)
    timelineViewController!.didMoveToParentViewController(self)
    timelineViewController!.view.translatesAutoresizingMaskIntoConstraints = false

    timelineAreaView.addConstraint(NSLayoutConstraint(item: timelineViewController!.view, attribute: NSLayoutAttribute.Left, relatedBy: NSLayoutRelation.Equal,
        toItem: timelineAreaView, attribute: NSLayoutAttribute.Left, multiplier: 1.0, constant: 0))
    timelineAreaView.addConstraint(NSLayoutConstraint(item: timelineViewController!.view, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal,
        toItem: timelineAreaView, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 0))
    timelineAreaView.addConstraint(NSLayoutConstraint(item: timelineViewController!.view, attribute: NSLayoutAttribute.Right, relatedBy: NSLayoutRelation.Equal,
        toItem: timelineAreaView, attribute: NSLayoutAttribute.Right, multiplier: 1.0, constant: 0))
    timelineAreaView.addConstraint(NSLayoutConstraint(item: timelineViewController!.view, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal,
        toItem: timelineAreaView, attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: 0))
TimelineViewController是UIView属性backgroundColor设置为蓝色的普通UIViewController

以下是结果,显示在该优秀工具中:

到目前为止还不错。但它需要有一个UIScrollView。因此,如果我将UIScrollView添加到情节提要中的UIViewController中,它将如下所示:

其约束现在如下所示:

以下是显示的问题-UIScrollView突出显示:

显示布局检查器显示:

那么,为什么在帧中y原点加上20个像素,x原点减去20个像素呢

我的第一个想法是查看“调整滚动视图插入”和“顶栏下”的视图控制器设置,但这些都没有效果。我在这里找不到任何有任何效果的设置

返回故事板并补偿两个神秘的20像素错误,即


这让它看起来就像我想要的。但我不应该这么做。发生了什么?

是否希望滚动视图位于状态栏下?这里有点模糊,无法理解您在设备/模拟器上看到的内容。是的-在Reveal中捕获的问题图片显示滚动视图的框架在视图的左下方。最终视图位于屏幕顶部,位于状态栏下方。顶部布局指南应位于状态栏下方。如果要重叠状态栏,请对视图(而不是顶部布局指南)进行约束。关于水平移动,约束固定在边距上,这种情况下会发生移动。在禁用页边距的情况下,将前导和尾随固定到视图。