Toán tử nhị phân '|' không thể được áp dụng cho hai toán hạng UIViewAutoresizing


193

Gặp lỗi này trong Swift 2.0.

Toán tử nhị phân '|' không thể được áp dụng cho hai toán hạng UIViewAutoresizing

Đây là mã:

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

Bất kỳ ý tưởng những gì có thể là vấn đề? nhập mô tả hình ảnh ở đây


Câu trả lời:


457

Các OptionSetTypecó một cú pháp cập nhật cho Swift 2.x và một bản cập nhật cho Swift 3.x

Swift 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]

30

Đây là điểm khác biệt giữa Swift 1.2 và 2:

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

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

6

Thử với xcode7-b6:

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

5

Dành cho Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

@Pushpa: tò mò, ngoài việc thêm từ "Cho" vào trước câu trả lời của tôi, bạn có chỉnh sửa / thay đổi thứ gì khác mà tôi không thể thấy không? Cảm ơn
David DelMonte

2
Có, đã đưa mã vào bên trong khối mã :) Và vâng, câu trả lời này đã được đăng với Swift 2.
Pushpa Y

1

thực tế cho swift 3.0.2:

view.autoresizingMask = [.layerWidthSizable, .layerHeightSizable]

-1

sử dụng mã này swift 2 với Xcode 7.2

self.view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin, .FlexibleTopMargin]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.