Binäroperator '|' kann nicht auf zwei UIViewAutoresizing-Operanden angewendet werden

193

Diesen Fehler in Swift 2.0 erhalten.

Binäroperator '|' kann nicht auf zwei UIViewAutoresizing-Operanden angewendet werden

Hier ist der Code:

let view = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 568))
addSubview(view)
view.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight

Irgendeine Idee, was das Problem sein kann? Geben Sie hier die Bildbeschreibung ein

Khawar
quelle

Antworten:

457

Sie OptionSetTypehaben eine aktualisierte Syntax für Swift 2.x und ein weiteres Update für Swift 3.x

Swift 3.x.

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x.

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
keithbhunter
quelle
30

Dies sind die Unterschiede zwischen Swift 1.2 und 2:

// swift 1.2
view.autoresizingMask = .FlexibleWidth | .FlexibleTopMargin

// swift 2
view.autoresizingMask = [.FlexibleWidth, .FlexibleTopMargin]
Jorge Casariego
quelle
6

Versuchen Sie es mit xcode7-b6:

view.autoresizingMask = UIViewAutoresizing.FlexibleWidth.union(UIViewAutoresizing.FlexibleHeight)
Tai Le
quelle
5

Für Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
David DelMonte
quelle
@Pushpa: Neugierig, außer dem Wort "Für" am Anfang meiner Antwort, haben Sie etwas anderes bearbeitet / geändert, das ich nicht sehen kann? Vielen Dank
David DelMonte
2
Ja, den Code in den Codeblock geputtet :) Und ja, diese Antwort wurde bereits mit Swift 2 gepostet.
Pushpa Y
1

aktuell für schnelle 3.0.2:

view.autoresizingMask = [.layerWidthSizable, .layerHeightSizable]
Liza Povalyaeva
quelle
-1

Verwenden Sie diesen Code Swift 2 mit Xcode 7.2

self.view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin, .FlexibleTopMargin]
Maninderjit Singh
quelle