具有自动布局和偏移约束的UITableView

具有自动布局和偏移约束的UITableView,uitableview,swift,autolayout,Uitableview,Swift,Autolayout,我使用以下代码添加带有偏移约束的UITableView: self.tableView = UITableView() self.view.addSubview(self.tableView) let views: NSDictionary = ["tableView": self.tableView] let horizontal: NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:|[tableView]|", opti

我使用以下代码添加带有偏移约束的
UITableView

self.tableView = UITableView()
self.view.addSubview(self.tableView)

let views: NSDictionary = ["tableView": self.tableView]
let horizontal: NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:|[tableView]|", options: NSLayoutFormatOptions(0), metrics: nil, views: views)
let vertical: NSArray = NSLayoutConstraint.constraintsWithVisualFormat("V:|[tableView]|", options: NSLayoutFormatOptions(0), metrics: ["offsetTop": 150, "offsetBottom": 49], views: views)

var constraints: NSMutableArray = NSMutableArray()
constraints.addObjectsFromArray(horizontal)
constraints.addObjectsFromArray(vertical)
self.view.addConstraints(constraints)
我不断得到以下错误:

(
    "<NSLayoutConstraint:0x17e8d9f0 V:|-(0)-[UITableView:0x18893a00]   (Names: '|':UIView:0x17d7da90 )>",
    "<NSLayoutConstraint:0x17e8da50 V:[UITableView:0x18893a00]-(0)-|   (Names: '|':UIView:0x17d7da90 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x17d886e0 h=--& v=--& V:[UITableView:0x18893a00(0)]>",
    "<NSLayoutConstraint:0x17d88bd0 'UIView-Encapsulated-Layout-Height' V:[UIView:0x17d7da90(568)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x17e8da50 V:[UITableView:0x18893a00]-(0)-|   (Names: '|':UIView:0x17d7da90 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
(
"",
"",
"",
""
)
将尝试通过打破约束进行恢复
在UIViewAlertForUnsatifiableConstraints处创建一个符号断点,以便在调试器中捕获该断点。
中列出的UIView上UIConstraintBasedLayoutDebugging类别中的方法也可能会有所帮助。
我做错什么了吗?我试图获得一个顶部和底部都有偏移的
UITableView
。我在这一页上读到了以下内容:


如果以编程方式创建视图并使用自动布局,则在将视图插入层次结构之前,需要先通过调用禁用UIKit创建的默认约束:

self.tableView = UITableView()
self.tableView.setTranslatesAutoresizingMaskIntoConstraints(false)
self.view.addSubview(self.tableView)