Operador binário '|' não pode ser aplicado a dois operandos UIViewAutoresizing

193

Obtendo este erro no Swift 2.0.

Operador binário '|' não pode ser aplicado a dois operandos UIViewAutoresizing

Aqui está o código:

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

Alguma idéia do que pode ser o problema? insira a descrição da imagem aqui

Khawar
fonte

Respostas:

457

O OptionSetTypetem uma sintaxe atualizado para o Swift 2.x e outra atualização para Swift 3.x

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

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

Estas são as diferenças entre o Swift 1.2 e o 2:

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

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

Tente com xcode7-b6:

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

Para Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
David DelMonte
fonte
@ Pushpa: curioso, além de adicionar a palavra "For" na parte da frente da minha resposta, você editou / mudou outra coisa que eu não consigo ver? Obrigado
David DelMonte
2
Sim, coloquei o código dentro do bloco de código :) E sim, esta resposta já foi publicada com o Swift 2. #
Pushpa Y
1

atual para o veloz 3.0.2:

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

use esse código swift 2 com o Xcode 7.2

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