Opérateur binaire '|' ne peut pas être appliqué à deux opérandes UIViewAutoresizing

193

Obtenir cette erreur dans Swift 2.0.

Opérateur binaire '|' ne peut pas être appliqué à deux opérandes UIViewAutoresizing

Voici le code:

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

Une idée quel peut être le problème? entrez la description de l'image ici

Khawar
la source

Réponses:

457

Le OptionSetTypeobtenu une syntaxe mise à jour pour Swift 2.x et une autre mise à jour pour Swift 3.x

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
keithbhunter
la source
30

Ce sont les différences entre Swift 1.2 et 2:

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

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

Essayez avec xcode7-b6:

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

Pour Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
David DelMonte
la source
@Pushpa: curieux, à part ajouter le mot "pour" au début de ma réponse, avez-vous modifié / changé autre chose que je ne vois pas? Merci
David DelMonte
2
Oui, mis le code à l'intérieur du bloc de code :) Et oui, cette réponse est déjà publiée avec Swift 2.
Pushpa Y
1

réel pour swift 3.0.2:

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

utiliser ce code swift 2 avec Xcode 7.2

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