[英]Cant fill superview with view programmatically
I'll try to make subview's sizes same its superview. 我将尝试使子视图的大小与其父视图相同。
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))
}
What I do wrong? 我做错了什么?
========================= ========================
Update! 更新!
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))
}
But no effect =( 但是没有效果=(
Thx a lot! 多谢!
Two mistakes (at least). 两个错误(至少)。 First: 第一:
subView.setTranslatesAutoresizingMaskIntoConstraints(true)
That needs to be false
, not true
. 那必须是false
,而不是true
。
Second: You don't want to simply do this in viewDidLayoutSubviews
, because that method will be called many times during the life of your app, and you're going to be adding new constraints unconditionally every time. 第二:您不希望在viewDidLayoutSubviews
简单地执行此操作,因为该方法在应用程序的生命周期中将被调用多次,并且每次都将无条件地添加新的约束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.