Saya dulu menggunakan autolayout menambahkan batasan baru untuk membuat batasan sederhana untuk tampilan superview / relatif seperti ini (untuk waktu loooong):
Namun, baru-baru ini setelah diperbarui ke xcode terbaru (11.3.3 atau hanya 11.3 / 11C29), saya memiliki masalah aneh ini: ketika saya menetapkan konstanta = 0, mereka selalu menghasilkan kendala dengan cara yang tidak diinginkan seperti ini:
Dan tampaknya nilai defaultnya entah bagaimana 20 dan membuat pandangan saya terlihat sangat salah (0 dibandingkan dengan 20?)
Jika saya memperbaikinya dengan mengedit batasan seperti ini:
Kemudian akan diperbaiki lagi (gambar setelah diedit kendala, sebelum diedit itu menampilkan konstan = Standard
)
Saya bahkan tidak tahu bagaimana menggambarkan masalah ini, tetapi bagaimana cara memperbaikinya baru add new constraint
untuk menggunakan titik keinginan saya alih-alih standar / default?
Memperbarui:
Sepertinya hanya terjadi ketika kendala superview. Tidak tahu bagaimana cara memperbaikinya.
Pembaruan Apr-01-2020:
Xcode11.4 memperbaiki ini.
standard
nilai (sehingga kita dapat mengatur 10 atau 0 bukannyadefault = 8
) tetapi saya lupa di mana itu sekarang. Atau mungkin mereka menghapus fitur?Jawaban:
Sepertinya bug (jangan lupa untuk file dengan Apple). Ini solusi sederhana:
Saat Anda mengisi angka di "popover", alih-alih mengetik
0
, ketik0.01
. Ini akan mencegah nomor berubah secara misterius menjadi "Standar". Oke, jadi0.01
tidak sama dengan0
tetapi cukup dekat sehingga Anda tidak bisa membedakannya, dan setidaknya Anda tidak harus kembali dan mengubahnya nanti.EDIT Apple mengatakan bahwa bug ini akan diperbaiki di Xcode 11.4:
sumber
Sementara solusi @matt berfungsi, saya hanya ingin menambahkan bahwa Anda dapat mengaturnya ke 0,01 dan kemudian mengubahnya ke 0, itu tidak akan berubah ke nilai standar lagi. Catatan: Xcode 11.3
sumber
Pada Xcode 11.3.1:
Solusi paling rapi dan tercepat yang saya temukan adalah sebagai berikut:
Cukup ketik
-0
ke dalam bidang kendala. Xcode tampaknya membuang yang negatif dan berperilaku dengan benar, yang lebih baik daripada membaca0.01
untuk semuanya.Anda dapat menyisipkan semua kendala sekaligus, tanpa harus melakukannya satu per satu atau buka dan edit nanti.
Xcode menampilkan nilai sebagai ini
Tampaknya memang perilaku yang sangat bodoh. Apakah ada alasan bahwa Apple mungkin membuatnya melakukan ini dengan sengaja ...?
Sunting: Ini sepertinya tidak berfungsi setiap saat , yang membuat frustrasi. Saya baru saja memiliki acara UIImageView 0 hingga Superview, namun secara visual masih berada pada nilai default (20). Ini benar-benar tampak seperti bug dengan IB karena perilakunya benar-benar tidak masuk akal.
sumber
Perilaku ini tampaknya diperbaiki pada Xcode 11.4: catatan rilis
Jawaban asli:
Saya baru saja menemukan perilaku ini juga, saya mencoba menambahkan kendala 1 oleh 1 dan Xcode benar-benar menghormati nilai 0.
Dua sen saya.
sumber
Saya tahu ini bukan solusi, tetapi untuk solusi sementara untuk mencegah Anda melewati setiap kendala, saya baru tahu bahwa Anda mendapatkan perilaku yang diinginkan jika Anda memasukkan '-0' bukan '0', tetapi Anda harus memasukkan satu kendala setiap waktu.
sumber
Sebenarnya tidak ada cara untuk menyelesaikan masalah ini pada saat yang bersamaan
tetapi solusi sementara terbaik adalah menambahkan kendala dengan nol satu per satu.
sumber
abaikan itu ketika standar.
setelah menambahkannya klik pada constrain (garis biru) dan inspector untuk membatasi atribut dan atur ke 0.
itu bekerja untuk saya
sumber
Masih mengalami bug ini (Xcode 11.3.1). Memperbaikinya dengan hanya menambahkan kendala sebagai "standar", lalu mengklik garis kendala biru dan mengatur "konstan" di bawah inspektur ukuran ke 0.
sumber