我在 Main.storyboard 中添加了一个 scrollView 并使其与 View 大小相同并将背景颜色设置为蓝色。 但是我在自动布局方面遇到了麻烦,所以我试图通过代码停用约束(成功)并使用 viewDidLoad() 中的以下代码设置框架位置和大小
NSLayoutConstraint.deactivateConstraints(self.view.constraints())
self.scrollView.frame = CGRectMake(0.0, 100.0, 200.0, 200.0)
self.scrollView.backgroundColor = (UIColor.redColor())
当我运行代码时,颜色变为红色(所以我得到了它,这很好)但是 scrollView 没有改变位置或大小。 执行此操作的正确语法是什么?
最佳答案
如果您在 viewDidLayoutSubviews() 中设置框架,这将起作用:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.scrollView.frame = CGRect(x: 0.0, y: 100.0, width: 200.0, height: 200.0)
}
在 viewDidLoad() 中尝试这样做是行不通的,因为此时 scrollView 还不在 View 层次结构中。
请注意,您只是在代码段中停用了 View 的约束,而不是其 subview 。这可能不是您想要的。
另请注意,我不赞成将此作为解决约束问题的方法。 ;-)
关于swift - 通过代码设置scrollview大小和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25370230/