Бинарный оператор '|' нельзя применять к двум операндам UIViewAutoresizing

193

Получение этой ошибки в Swift 2.0.

Бинарный оператор '|' нельзя применять к двум операндам UIViewAutoresizing

Вот код:

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

Есть идеи, в чем может быть проблема? введите описание изображения здесь

Хавар
источник

Ответы:

457

OptionSetTypeПолучил обновленный синтаксис для Swift 2.x и еще одно обновление для Swift 3.x

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
keithbhunter
источник
30

Это различия между Swift 1.2 и 2:

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

// swift 2
view.autoresizingMask = [.FlexibleWidth, .FlexibleTopMargin]
Хорхе Касариего
источник
6

Попробуйте с xcode7-b6:

view.autoresizingMask = UIViewAutoresizing.FlexibleWidth.union(UIViewAutoresizing.FlexibleHeight)
Тай Ле
источник
5

Для Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
TheGeezer
источник
@Pushpa: любопытно, кроме добавления слова «For» в начале моего ответа, вы редактировали / меняли что-то еще, чего я не вижу? Спасибо
TheGeezer
2
Да, вставил код в блок кода :) И да, этот ответ уже опубликован в Swift 2.
Pushpa Y
1

актуально для swift 3.0.2:

view.autoresizingMask = [.layerWidthSizable, .layerHeightSizable]
Лиза Поваляева
источник
-1

используйте этот код swift 2 с Xcode 7.2

self.view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin, .FlexibleTopMargin]
Maninderjit Singh
источник