Operator biner '|' tidak dapat diterapkan pada dua operan UIViewAutoresizing

193

Mendapatkan kesalahan ini di Swift 2.0.

Operator biner '|' tidak dapat diterapkan pada dua operan UIViewAutoresizing

Ini kodenya:

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

Adakah yang tahu apa masalahnya? masukkan deskripsi gambar di sini

Khawar
sumber

Jawaban:

457

The OptionSetTypemendapat sintaks diperbarui untuk Swift 2.x dan pembaruan lain untuk Swift 3.x

Cepat 3.x

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

Swift 2.x

view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
keithbhunter
sumber
30

Inilah perbedaan antara Swift 1.2 dan 2:

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

// swift 2
view.autoresizingMask = [.FlexibleWidth, .FlexibleTopMargin]
Jorge Casariego
sumber
6

Coba dengan xcode7-b6:

view.autoresizingMask = UIViewAutoresizing.FlexibleWidth.union(UIViewAutoresizing.FlexibleHeight)
Tai Le
sumber
5

Untuk Swift 3 Xcode 8 b1:

view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
David DelMonte
sumber
@Pushpa: ingin tahu, selain menambahkan kata "Untuk" di bagian depan jawaban saya, apakah Anda mengedit / mengubah sesuatu yang tidak dapat saya lihat? Terima kasih
David DelMonte
2
Ya, memasukkan kode ke dalam blok kode :) Dan ya jawaban ini sudah diposkan dengan Swift 2.
Pushpa Y
1

sebenarnya untuk swift 3.0.2:

view.autoresizingMask = [.layerWidthSizable, .layerHeightSizable]
Liza Povalyaeva
sumber
-1

gunakan kode ini cepat 2 dengan Xcode 7.2

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