2017-02-11 54 views
3

我想添加一些约束的子视图。添加约束子视图不起作用

但我的看法没有出现。 下面是一些代码,有谁知道哪里出了问题?

(如果我添加的UITextField例如它工作正常...)

class TestViewController:UIViewController { 
    override func viewDidLoad() { 
     //Do not work... 
     addAndLayout(v: UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))) 


     //Works fine 
     //addAndLayout(v: UITextField(frame: CGRect(x: 0, y: 0, width: 0, height: 0))) 
    } 

    func addAndLayout(v:UIView) { 
     v.backgroundColor = UIColor.red 
     view.addSubview(v) 

     v.translatesAutoresizingMaskIntoConstraints = false 
     let leading = NSLayoutConstraint(item: v, attribute: .leading, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: .leading, multiplier: 1, constant: 0) 
     let trailing = NSLayoutConstraint(item: v, attribute: .trailing, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: .trailing, multiplier: 1, constant: 0) 
     let top = NSLayoutConstraint(item: v, attribute: .top, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: .top, multiplier: 1, constant: 0) 
     view.addConstraints([leading, trailing, top]) 
    } 
} 

回答

2

添加一个高度约束或约束下,你应该看到的视图。它与UITextField一起工作的原因是UITextField具有内在的内容大小,而UIView则没有。

+0

没问题,自动布局并不是最舒服的方法之一。 –

相关问题