Swift 2.0 constraintsWithVisualFormat

iPe*_*era 12 autolayout swift swift2

我在Swift 2.0中遇到了AutoLayout的奇怪问题

self.webView = WKWebView()
self.view.addSubview(self.webView!)

var viewBindingsDict: NSMutableDictionary = NSMutableDictionary()
viewBindingsDict.setValue(self.webView, forKey: "webView")

self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[webView]|", options: 0, metrics: nil, views: viewBindingsDict))

self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[webView]|", options: 0, metrics: nil, views: viewBindingsDict))
Run Code Online (Sandbox Code Playgroud)

我收到错误:

'String' is not convertible to 'StringLiteralConvertible'
Run Code Online (Sandbox Code Playgroud)

"H:| [webView] |" "V:| [webView] |"

我不知道我是否遗漏了什么

更新: 操场截图

Dán*_*agy 23

你应该改变你viewBindigsDict

var viewBindingsDict = [String: AnyObject]()
viewBindingsDict["webView"] = webView
Run Code Online (Sandbox Code Playgroud)

正如评论中所建议的,以及格式选项中,您不能使用0,而是:

view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[webView]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: viewBindingsDict))
Run Code Online (Sandbox Code Playgroud)

或@MartinR建议更简单:

view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[webView]|", options: [], metrics: nil, views: viewBindingsDict))
Run Code Online (Sandbox Code Playgroud)

  • 或者只是`options:[]`,类似于(例如)http://stackoverflow.com/a/30769477/1187415. (3认同)