如果我想以编程方式创建这些约束,我该怎么做?

时间:2016-01-23 03:23:44

标签: ios swift uitableview

Storyboard Screenshot

我有一个带有这些约束的UITableView。我试图以编程方式创建UITableView,但仍希望在代码中使用这些约束。

2 个答案:

答案 0 :(得分: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))

答案 1 :(得分: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)

有关详情,请点击此Swift | Adding constraints programmatically