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

Kha*_*war 186 cocoa-touch ios swift swift2

在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
Run Code Online (Sandbox Code Playgroud)

知道可能是什么问题吗? 在此输入图像描述

kei*_*ter 448

OptionSetType得到了斯威夫特2.X更新的语法和斯威夫特3.x的另一个更新

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
Run Code Online (Sandbox Code Playgroud)

Swift 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
Run Code Online (Sandbox Code Playgroud)


Jor*_*ego 30

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

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

// swift 2
view.autoresizingMask = [.FlexibleWidth, .FlexibleTopMargin]
Run Code Online (Sandbox Code Playgroud)


Tai*_* Le 6

试试xcode7-b6:

view.autoresizingMask = UIViewAutoresizing.FlexibleWidth.union(UIViewAutoresizing.FlexibleHeight)
Run Code Online (Sandbox Code Playgroud)


Dav*_*nte 5

用于Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
Run Code Online (Sandbox Code Playgroud)

  • 是的,把代码放在代码块里面:)是的,这个答案已经发布了Swift 2. (2认同)