我在Main.storyboard中添加了一个scrollView,并使其与视图大小相同,并将backgroundcolor设置为蓝色。 但是我遇到了autolayout的麻烦,所以我试图通过代码(成功)去激活约束,并使用viewDidLoad()中的以下代码设置帧位置和大小
NSLayoutConstraint.deactivateConstraints(self.view.constraints())
self.scrollView.frame = CGRectMake(0.0, 100.0, 200.0, 200.0)
self.scrollView.backgroundColor = (UIColor.redColor())
当我运行代码时,颜色变为红色(所以我已经为我做了,这很好)但是scrollView不会改变位置或大小。 这样做的正确语法是什么?
答案 0 :(得分:2)
如果您在viewDidLayoutSubviews()中设置框架,这将有效:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.scrollView.frame = CGRect(x: 0.0, y: 100.0, width: 200.0, height: 200.0)
}
尝试在viewDidLoad()中执行此操作将不起作用,因为此时scrollView尚未在视图层次结构中。
请注意,您只是停用视图的约束,而不是停用代码段中的子视图。这可能不是你想要的。
另请注意,我并未认可这是解决约束问题的方法。 ;-)