Operatore binario '|' non può essere applicato a due operandi UIViewAutoresizing


193

Ottenere questo errore in Swift 2.0.

Operatore binario '|' non può essere applicato a due operandi UIViewAutoresizing

Ecco il codice:

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

Qualche idea di quale possa essere il problema? inserisci qui la descrizione dell'immagine


Risposte:


457

Hanno OptionSetTypeottenuto una sintassi aggiornata per Swift 2.xe un altro aggiornamento per Swift 3.x

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]

30

Queste sono le differenze tra Swift 1.2 e 2:

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

// swift 2
view.autoresizingMask = [.FlexibleWidth, .FlexibleTopMargin]

6

Prova con xcode7-b6:

view.autoresizingMask = UIViewAutoresizing.FlexibleWidth.union(UIViewAutoresizing.FlexibleHeight)

5

Per Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

@Pushpa: curioso, oltre ad aggiungere la parola "For" all'inizio della mia risposta, hai modificato / cambiato qualcos'altro che non riesco a vedere? Grazie
TheGeezer il

2
Sì, ho inserito il codice all'interno del blocco di codice :) E sì, questa risposta è già stata pubblicata con Swift 2.
Pushpa Y

1

attuale per swift 3.0.2:

view.autoresizingMask = [.layerWidthSizable, .layerHeightSizable]

-1

usa questo codice swift 2 con Xcode 7.2

self.view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin, .FlexibleTopMargin]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.