Operator binarny „|” nie można zastosować do dwóch operandów UIViewAutoresizing

193

Otrzymywanie tego błędu w Swift 2.0.

Operator binarny „|” nie można zastosować do dwóch operandów UIViewAutoresizing

Oto kod:

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

Masz pojęcie, co może być problemem? wprowadź opis zdjęcia tutaj

Khawar
źródło

Odpowiedzi:

457

OptionSetTypeDostał zaktualizowany składnia 2.x Swift i kolejna aktualizacja dla Swift 3.x

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
keithbhunter
źródło
30

Oto różnice między Swift 1.2 i 2:

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

// swift 2
view.autoresizingMask = [.FlexibleWidth, .FlexibleTopMargin]
Jorge Casariego
źródło
6

Spróbuj z xcode7-b6:

view.autoresizingMask = UIViewAutoresizing.FlexibleWidth.union(UIViewAutoresizing.FlexibleHeight)
Tai Le
źródło
5

Dla Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
TheGeezer
źródło
@Pushpa: ciekawy, oprócz dodania słowa „For” na początku mojej odpowiedzi, czy edytowałeś / zmieniłeś coś, czego nie widzę? Dzięki
TheGeezer
2
Tak, umieściłem kod w bloku kodu :) I tak, ta odpowiedź jest już opublikowana w Swift 2.
Pushpa Y
1

aktualne dla szybkiego 3.0.2:

view.autoresizingMask = [.layerWidthSizable, .layerHeightSizable]
Liza Povalyaeva
źródło
-1

użyj tego kodu swift 2 z Xcode 7.2

self.view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin, .FlexibleTopMargin]
Maninderjit Singh
źródło