2015-07-27 14 views
12

ho strano problema con layout automatico a Swift 2,0Swift 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)) 

E sto errore di ricezione:

'String' is not convertible to 'StringLiteralConvertible' 

per "H: | [WebView] |" e "V: | [webView] |"

Non so se im manca qualcosa

Aggiornamento: Screenshot from playground

+0

Hai provato a usare pianura 'Dictionary' invece di' NSMutableDictionary'? Come 'let viewBindingsDict = [" webView ": self.webView!]'? – Michal

+0

Inoltre, credo che 'addConstraints' possa non piacere il fatto, che' webView' in 'NSMutableDictionary' sia opzionale. – Michal

+0

Michal Sono provato con Dizionario con lo stesso risultato. Guarda lo screenshot, Xcode è puntato su "H: | [webView] |" come problema – iPera

risposta

22

Si dovrebbe cambiare il vostro viewBindigsDict a

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

come suggerito nei commenti, e anche nelle opzioni di formato , non è possibile utilizzare 0, invece:

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

o più più semplice come @MartinR suggerito:

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

Oppure solo "opzioni: []', simile a (ad esempio) http://stackoverflow.com/a/30769477/1187415. –

+0

@MartinR grazie, non lo sapevo! –

Problemi correlati