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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.