Operador binario '|' no se puede aplicar a dos operandos UIViewAutoresizing

193

Obteniendo este error en Swift 2.0.

Operador binario '|' no se puede aplicar a dos operandos UIViewAutoresizing

Aquí está el código:

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

¿Alguna idea de cuál puede ser el problema? ingrese la descripción de la imagen aquí

Khawar
fuente

Respuestas:

457

El OptionSetTypetiene una sintaxis actualizado para Swift 2.x y otra actualización para Swift 3.x

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

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

Estas son las diferencias entre Swift 1.2 y 2:

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

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

Prueba con xcode7-b6:

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

Para Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
David DelMonte
fuente
@Pushpa: curioso, aparte de agregar la palabra "Para" al principio de mi respuesta, ¿editó / cambió algo más que no puedo ver? Gracias
David DelMonte
2
Sí, coloqué el código dentro del bloque de código :) Y sí, esta respuesta ya está publicada con Swift 2.
Pushpa Y
1

real para swift 3.0.2:

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

use este código swift 2 con Xcode 7.2

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