簡體   English   中英

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

[英]If I want to create these constraints programatically, how do I do so?

故事板截圖

我有一個帶有這些約束的UITableView。 我正在嘗試以編程方式創建UITableView,但仍然需要代碼中的這些約束。

您可以使用視覺格式語言來相對容易地做到這一點:

將視圖, 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))

一種方法是:

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)

有關更多信息,您可以關注此Swift | 以編程方式添加約束

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM