Двійковий оператор '|' не можна застосувати до двох операндів 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

Швидкий 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Швидкий 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]

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]

@Pushpa: цікаво, окрім додавання слова "За" в передній частині моєї відповіді, ви редагували / змінювали щось інше, чого я не бачу? Спасибі
TheGeezer

2
Так, вставте код всередині блоку коду :) І так, ця відповідь вже розміщена у Swift 2.
Pushpa Y


-1

скористайтеся цим кодом швидким 2 з Xcode 7.2

self.view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin, .FlexibleTopMargin]
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.