我的观点分为四个部分。左上角的角落视图(未使用,不可见);顶部的水平视图(代码中为timelineAreaView
),显示一组轴标签;左侧的垂直视图显示另一组轴标签,视图的其余部分是大型集合视图。它与电子表格不同。
问题是我试图在顶视图中使用UIScrollView。如果我将测试UIView添加到顶部,一切都很好。这是代码:
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是一个普通的UIViewController,其UIView属性backgroundColor设置为蓝色。
结果显示在优秀工具Reveal中:
到目前为止一切顺利。但它需要有一个UIScrollView。因此,如果我在故事板中将UIScrollView添加到该UIViewController,它看起来像这样:
现在它的约束如下:
这里显示的是Reveal中显示的问题 - UIScrollView突出显示:
显示布局检查器显示:
那么为什么有20个像素添加到y原点并从帧中的x原点中减去?
我的第一个想法是查看"调整滚动视图插图的视图控制器设置"和#34;在顶部酒吧"但这些都没有效果。我找不到任何有效的设置。
这使它看起来就像我想要的那样。但我不应该这样做。发生了什么事?