Bingkai peringatan untuk "bilah Navigasi" akan berbeda pada saat dijalankan muncul dalam Xcode 8 Swift 3

143

Sebelum saya memutakhirkan ke Xcode 8saya belum melihat kesalahan ini dalam kasus seperti itu. Saya memiliki Pengontrol Navigasi yang berbeda. Untuk semuanya saya melihat ada kesalahan Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375. Pada kenyataannya Pengontrol Navigasi ini tidak memiliki Navigation bar. Navigation barada untuk subview. Lagi pula saya bisa menyelesaikannya dengan mencentang dan menghapus centang Shows navigation barpada kotak masuk Attributes inspector. Namun sayangnya setiap kali saya membuka kembali Main.storyboardperingatan ini muncul lagi. Juga jika saya klik pada segitiga kuning dan kemudian pada bingkai pembaruan tidak ada yang terjadi.

masukkan deskripsi gambar di sini

Danny
sumber
1
Masalah yang sama di sini dikonfirmasi. Tidak ada resolusi yang disarankan untuk memperbaiki masalah.
GregP
@GregP silakan periksa solusi saya dan membalas
KSR
@Ashish Kakkad silakan periksa solusi saya dan membalas
KSR
Filed rdar: // 28844288. Jangan ragu untuk menipu openradar.me/radar?id=4985464104681472
Guillaume Algis
Ini adalah peringatan terakhir saya yang mengganggu saya setelah memperbarui proyek saya.
Sethmr

Jawaban:

154

Peringatan akan hilang jika Anda mengubah properti "Ukuran Simulasi" menjadi "Bentuk Bebas".

Kai
sumber
37
Ini tidak menyelesaikan masalah. Tutup Xcode dan Buka lagi masalah akan datang lagi.
Ashish Kakkad
2
Ini mengganggu saya. Saya baru saja mencoba ini, dan ini menghapus peringatan sementara . Anda selalu dapat beralih Ukuran Simulasi bolak-balik untuk menghapus peringatan ketika itu kembali. Super. Mengganggu.
nekonari
5
Hanya perbaikan sementara - ini bukan jawabannya.
emem
5
Ubah Ukuran Simulasi ini (dan kembali ke 'Tersirat' atau apa pun) atau "aktif / nonaktifkan Sesuaikan Scrollview Insets" . Keduanya akan menyebabkan Storyboard menghapusnya misplaced="YES". Ini adalah bug Xcode, dan perbaikan ini adalah jenis pemuatan paksa. Diambil dari jawaban @buildsucceeded.
bauerMusic
1
@ MobileBloke Dengan paksa-penyegaran Saya maksudkan bahwa itu akan menyebabkan tampilan Storyboard untuk menulis ulang (menyegarkan) params, mengevaluasi kembali dan menghapus peringatan. Ini benar-benar menyegarkan, kekuatan hanya berarti bahwa itu tidak melakukannya secara otomatis dengan sendirinya (sebagaimana mestinya) dan membutuhkan beberapa perubahan sewenang-wenang manual.
bauerMusic
35

Seperti yang disebutkan di sini, Anda dapat memperbaikinya dengan mengaktifkan / menonaktifkan Sesuaikan Scrollview Insets.

buildsucceeded
sumber
4
Wow, dan (memeriksa git) secara harfiah semua yang terjadi ketika Anda melakukan ini adalah yang misplaced="YES"dihapus. : /
buildsucceeded
7
Itu memperbaikinya sampai waktu berikutnya Anda tutup dan buka kembali proyek. Bukan perbaikan lengkap.
Casey Wagner
15

Saya telah berubah dari Lihat sebagai: iPhone 6S ke iPhone 5S, lalu diubah kembali ke iPhone 6S, dan Xcode melakukan semua perubahan untuk menghapus peringatan.

negersiu
sumber
2
Ini bekerja untuk waktu yang singkat - kemudian setelah Xcode memrosesnya lagi - hal yang sama terjadi dan peringatan muncul kembali. Apakah ini masih berfungsi untuk Anda pada Xcode terbaru?
UKDataGeek
12

Ini bekerja untuk saya di Xcode 8.3.1 Setelah memulai ulang Xcode, itu masih berfungsi.

masukkan deskripsi gambar di sini

  1. Pilih Pengontrol Navigasi

masukkan deskripsi gambar di sini

  1. Pergi ke Tampilkan Inspektur Ukuran

masukkan deskripsi gambar di sini

  1. Ubah Ukuran Simulasi ke Bentuk Bebas

masukkan deskripsi gambar di sini

  1. Ubah Ukuran Simulasi kembali ke Tetap

masukkan deskripsi gambar di sini

  1. Lalu peringatan itu hilang.

masukkan deskripsi gambar di sini

guoc
sumber
Tahu mengapa ini bisa berhasil dan tidak tombol "Perbarui bingkai"?
Mangan
@guoc, bro bisa membantu saya silahkan stackoverflow.com/questions/46375778/... ?
May Phyu
7

Sebagai solusinya hanya untuk menghilangkan peringatan yang mengganggu saya telah mengedit Main.storyboard secara manual dengan menghapus 'salah tempat' di:

<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">

Peretasan tetapi bagus sekali tidak ada peringatan, bukan 1 :)

Jensie
sumber
Apakah saya harus menambahkan ini kembali nanti? Saya tidak terlalu peduli seperti apa Pengontrol navigasi saya selama saya tidak memiliki peringatan. Agak lucu. Storyboard mengenali peringatan selama sepersekian detik dan kemudian hilang ketika Anda memasuki storyboard dengan cara ini.
Sethmr
Saya melakukan hal yang sama dan kemudian tidak menyentuh storyboard lagi. Semuanya bekerja dengan baik.
Zhao
Masalahnya adalah bahwa ketika Anda memuatnya kembali ... ada orang lain yang memperhatikan bahwa butuh waktu lama untuk memuat storyboard dengan pemintal berjalan ketika kesalahan ini terjadi?
UKDataGeek
6

Klik "Lihat Sebagai" di kiri bawah storyboard Anda dan pilih ukuran perangkat yang berbeda, lalu klik lagi dan tukar kembali ke ukuran perangkat yang Anda mulai. Ini berhasil untuk saya.

colby
sumber
1
itu juga hanya sementara memperbaikinya untuk saya
zero3nna
3

Sampai Xcode 8 ditambal, Anda dapat mengatur opsi "Lihat sebagai:" ke "iPhone SE" untuk menghilangkan peringatan. Tidak ideal, tetapi berfungsi untuk saat ini.

nekonari
sumber
Saya MENGGUNAKAN SE .. tapi masih Peringatan
Abdul Waheed
1
Ya aku tahu. Tetapi mereka pergi setiap kali Anda mengubah pilihan itu ke sesuatu yang lain. Saat ini, saya mulai dengan 7, beralih ke SE, lalu kembali ke 7 untuk menghapus peringatan ini. Atau tinggalkan saja, dan tidak memeriksa misplacedproperti ketika melakukan perubahan.
nekonari
3

Saya mencoba semua saran di atas tetapi tampaknya tidak berhasil. Saya pikir itu mungkin bug yang lebih serius.

Saya telah mencatat bug di Apple Bug Reporter (tautan: https://bugreport.apple.com/logon ) - jika Anda ingin melakukan hal yang sama, silakan merujuk bug: 31355220agar Apple dapat mengikatnya bersama-sama. Semakin banyak orang yang melaporkannya - semakin banyak informasi yang harus mereka perbaiki untuk gangguan ini.

UKDataGeek
sumber
2

Saya bisa menyingkirkan masalah sepenuhnya dengan mengatur ukuran simulasi pengontrol tampilan untuk membentuk unik dan kemudian mengatur lebar dari 375 ke 320.

templeman15
sumber
Anda hanya perlu mengaturnya hanya pada pengendali tampilan yang tidak memiliki orang tua (pengendali tampilan root + mungkin lebih, tergantung pada apa yang Anda miliki di storyboard Anda)
thetrutz
1

Punya masalah yang sama, inilah yang saya lakukan untuk memperbaikinya:

Luaskan informasi kesalahan dan klik pada detail peringatan. Xcode kemudian akan secara otomatis membuka pengaturan dimensi / posisi. Ganti nilai saat ini dengan nilai yang disarankan dalam detail peringatan.

masukkan deskripsi gambar di sini

Pada dasarnya, pastikan bahwa ukuran di runtime Anda sama dengan ukuran yang Anda tentukan di inspektur ukuran.

Anda juga dapat mengklik ikon di sebelah gambar yang Anda posting (segitiga kuning dengan lingkaran putih. Kadang-kadang, ikon lingkaran merah) maka akan ada opsi untuk secara otomatis memperbaiki / menyesuaikan masalah.

masukkan deskripsi gambar di sini

Saya memilih opsi pembaruan kendala kemudian menyesuaikan kendala baru yang sesuai.

pengguna2027373
sumber
4
Tidak berfungsi dalam situasi ini. Bidang X / Y / Lebar / Tinggi untuk Bilah Navigasi semuanya berwarna abu-abu / tidak dapat diedit.
Slipp D. Thompson
@Ian Hmmm ... Saya pikir saya baru saja selesai mengedit xib sehingga jumlahnya cocok.
Slipp D. Thompson
1

bagi saya masalahnya adalah bahwa saya menyembunyikan bilah di bawah saat ditekan (menggunakan kotak centang IB).

saya harus memilih 'tidak ada' di opsi 'bilah bawah':

masukkan deskripsi gambar di sini

Radu Ursache
sumber
0

Oke jadi sepertinya saya sudah memperbaiki masalahnya. Inilah yang saya lakukan.

Pilih bingkai pembaruan seperti biasa. Buka file yang berbeda dan kemudian klik kembali pada file storyboard. Jika itu tidak berhasil, restart Xcode. Sepertinya itu memperbarui secara internal tetapi UI pembangun antarmuka macet karena kadang-kadang mendapat.

GregP
sumber
3
Setelah membuka kembali XCode, peringatan ini benar-benar menghilang, tetapi jika saya membuka file apa pun di proyek, maka lagi-lagi main.storyboardperingatan ini akan muncul lagi
Danny
0

Silakan ubah Pratinjau perangkat Anda di xcode untuk Lihat pengontrol dan kompilasi dan periksa peringatan ...

Xcode 8 adalah bit buggy, pembuat antarmuka mengatur ulang dengan tidak acak yang mempengaruhi semua tampilan yang terkandung. Coba ubah perangkat pratinjau Anda.

Aks
sumber