按代码设置滚动视图大小和位置

时间:2014-08-18 18:59:09

标签: swift ios8 xcode6

我在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不会改变位置或大小。 这样做的正确语法是什么?

1 个答案:

答案 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尚未在视图层次结构中。

请注意,您只是停用视图的约束,而不是停用代码段中的子视图。这可能不是你想要的。

另请注意,我并未认可这是解决约束问题的方法。 ;-)