2015-06-16 24 views
160

Nhận lỗi này trong Swift 2.0.Toán tử nhị phân '|' không thể áp dụng cho hai toán hạng UIViewAutoresizing

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 gì có thể là vấn đề? enter image description here

+2

có hiệu quả các vấn đề tương tự như trong [Swift 2.0 - Binary điều hành “|” không thể được áp dụng cho hai UIUserNotificationType toán hạng] (http://stackoverflow.com/questions/30761996/swift -2-0-binary-operator-cannot-be-apply-to-two-uiusernotificationtype). –

Trả lời

407

Các OptionSetType có một cú pháp cập nhật cho 2.x Swift 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] 
+24

Trước hết, cảm ơn! Nhưng tại sao tôi lại phải đến đây, công cụ di chuyển có thể phát hiện ra và sửa chữa nó không? xD –

+6

Nghe nghe. C'mon Apple .... – MattD

+2

Đây là một lựa chọn cú pháp kỳ lạ, imo. Điều gì sẽ xảy ra nếu bạn muốn tạo một mảng với nhiều giá trị enum? '+' hoặc '|' sẽ có ý nghĩa hơn với tôi. – devios1

6

Hãy thử với xcode7-b6 :

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

Điều này đúng trong trường hợp của tôi, sử dụng nhanh 2 trong Xcode 7 beta 6. @ keithbhunter của câu trả lời đã không làm việc cho tôi.Cảm ơn –

30

Đây là sự khác biệt giữa Swift 1.2 và 2:

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

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

sử dụng mã này nhanh chóng 2 với Xcode 7,2

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

Đối Swift 3Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
+0

@Pushpa: tò mò, khác hơn là thêm từ "For" ở phía trước của câu trả lời của tôi, bạn đã chỉnh sửa/thay đổi cái gì khác mà tôi không thể nhìn thấy? Cảm ơn –

+2

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

1

actua l cho nhanh chóng 3.0.2:

view.autoresizingMask = [.layerWidthSizable, .layerHeightSizable] 
Các vấn đề liên quan