Ios 无法以编程方式使用视图填充superview

Ios 无法以编程方式使用视图填充superview,ios,xcode,swift,autolayout,Ios,Xcode,Swift,Autolayout,我将尝试使子视图的大小与超级视图的大小相同 override func viewDidLayoutSubviews() { subView.setTranslatesAutoresizingMaskIntoConstraints(true) let viewsDictionary = ["subView": subView] view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[s

我将尝试使子视图的大小与超级视图的大小相同

override func viewDidLayoutSubviews() {
    subView.setTranslatesAutoresizingMaskIntoConstraints(true)
    let viewsDictionary = ["subView": subView]

    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[subView]|", options: nil, metrics: nil, views: viewsDictionary))
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[subView]|", options: nil, metrics: nil, views: viewsDictionary))
}
我做错了什么

=========================

更新

subView.setTranslatesAutoresizingMaskIntoConstraints(false)
        let viewsDictionary = ["subView": subView]

        view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-0.0-[subView]-0.0-|", options: nil, metrics: nil, views: viewsDictionary))
        view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-0.0-[subView]-0.0-|", options: nil, metrics: nil, views: viewsDictionary))
    }
但没有效果=(

太多了!

两个错误(至少)。第一个:

这需要是
false
,而不是
true


第二:你不想简单地在
viewdilayoutsubviews
中这样做,因为在你的应用程序生命周期中,这个方法会被多次调用,而且你每次都会无条件地添加新的约束。

这就是为什么我说“至少”。你说“没有效果”,但我如何知道这些变量甚至是正确的变量呢?例如,
子视图
实际上是指向此视图的指针吗?或者它的超视图是正确的超视图吗?不过,我知道,如果所有内容都指向正确的对象,则此类代码将起作用;例如,看看这段代码,我在代码中创建了一个滚动视图,然后给它一些限制,使其与superview完全重叠:Thx很多,您的代码工作正常,您能回答另一个问题吗?我将您的代码从“H:|-(10)-(lab]”更改为“H:|-(0)-(lab)-(0)-(0)-(124;”,但标签宽度不等于sc宽度,请告诉我,它是如何工作的,以及我需要学习什么来理解自动布局,再次感谢!如果我的回答对你有帮助,请接受它(勾选)。如果这导致了一个新问题,请问一个新问题;不要使用注释将一个问题“套用”到另一个问题上。
subView.setTranslatesAutoresizingMaskIntoConstraints(true)