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中捕获的问题图片显示滚动视图的框架在视图的左下方。最终视图位于屏幕顶部,位于状态栏下方。顶部布局指南应位于状态栏下方。如果要重叠状态栏,请对视图(而不是顶部布局指南)进行约束。关于水平移动,约束固定在边距上,这种情况下会发生移动。在禁用页边距的情况下,将前导和尾随固定到视图。