二元运算符“|”不能应用于两个 UIViewAutoresizing 操作数

Binary operator '|' cannot be applied to two UIViewAutoresizing operands

在 Swift 2.0.

中出现此错误

Binary operator '|' cannot be applied to two UIViewAutoresizing operands

代码如下:

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

知道可能是什么问题吗?

OptionSetType 获得了 Swift 2.x 的更新语法和 Swift 3.x

的另一个更新

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]

尝试 xcode7-b6:

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

这是 Swift 1.2 和 2 之间的区别:

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

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

使用此代码 swift 2 与 Xcode 7.2

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

对于Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

swift3.0.2 的实际值:

view.autoresizingMask = [.layerWidthSizable, .layerHeightSizable]