2015-07-27 14 views
12

मैं स्विफ्ट 2,0स्विफ्ट 2.0 constraintsWithVisualFormat

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)) 

में autolayout साथ अजीब समस्या है और मैं त्रुटि प्राप्त कर रहा हूँ:

'String' is not convertible to 'StringLiteralConvertible' 

के लिए "एच: | [WebView] |" और "वी: | [वेब व्यू] |"

मैं अगर im लापता कुछ

अद्यतन नहीं जानता: Screenshot from playground

+0

आप 'NSMutableDictionary' के बजाय सादे' Dictionary' उपयोग करने की कोशिश की है? जैसा कि 'देखते हैं बाइंडिंगडिक्ट = ["वेब व्यू": self.webView!] '? – Michal

+0

इसके अलावा, मेरा मानना ​​है कि 'addConstraints' इस तथ्य को पसंद नहीं कर सकता है,' 'NSMutableDictionary' में 'वेब व्यू' वैकल्पिक है। – Michal

+0

मीकल मैं एक ही परिणाम के साथ शब्दकोश के साथ कोशिश की है। स्क्रीनशॉट को देखें, एक्सकोड को "एच: | [वेब व्यू] |" पर इंगित किया गया है। समस्या के रूप में – iPera

उत्तर

22

आप अपने viewBindigsDict को

var viewBindingsDict = [String: AnyObject]() 
viewBindingsDict["webView"] = webView 

बदलना चाहिए के रूप में टिप्पणी में सुझाव दिया, और यह भी प्रारूप विकल्प में , आप 0 का उपयोग नहीं कर सकते, इसके बजाय:

view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[webView]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: viewBindingsDict)) 
@MartinR रूप

या अधिक सरल सुझाव:

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

या बस 'विकल्प: [] ', उदाहरण के लिए (http://stackoverflow.com/a/30769477/1187415। –

+0

@ मार्टिनआर धन्यवाद, मुझे यह नहीं पता था! –

संबंधित मुद्दे