2016-01-23 70 views
0

Storyboard Screenshot如果我想以編程方式創建這些約束,我該怎麼做?

我有這些約束一個UITableView。我試圖以編程方式創建UITableView,但仍希望在代碼中使用這些約束。

+0

見節 - > HTTPS:/ /developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html#//apple_ref/doc/uid/TP40010853-CH16-SW1 – Adrian

回答

2

你可以做到這一點比較用視覺語言的格式很簡單:

添加您的看法,topLayoutGuidebottomLayoutGuide到字典。我用views。您還必須將translatesAutoresizingMaskIntoConstraints設置爲false以使約束生效。

例子:

view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[yourView]-(-15)-|", options: [], metrics: nil, views: views)) 
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[topLayout][yourView][botLayout]", options: [], metrics: nil, views: views)) 
0

一種方式做的是:

let newView = UIView() 
newView.backgroundColor = UIColor.redColor() 
newView.translatesAutoresizingMaskIntoConstraints = false 
view.addSubview(newView) 


    let horizontalConstraint = NSLayoutConstraint(item: newView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0) 
view.addConstraint(horizontalConstraint) 

    let verticalConstraint = NSLayoutConstraint(item: newView, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: -15) 
view.addConstraint(verticalConstraint) 

    let widthConstraint = NSLayoutConstraint(item: newView, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 0) 
    view.addConstraint(widthConstraint) 

    let heightConstraint = NSLayoutConstraint(item: newView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0) 
    view.addConstraint(heightConstraint) 

獲取更多信息,您可以在這裏遵循`NSLayoutConstraints`這個Swift | Adding constraints programmatically

相關問題