Saya tidak dapat menemukan cara untuk membuat batasan 'persegi', yang berarti 'lebar sama dengan tinggi' di Interface Builder. Saya kira itu mungkin untuk menambahkan batasan seperti itu secara terprogram. Apakah ada yang bisa saya lakukan di IB? Mungkin saya tidak melihatnya? Tampaknya sepele, namun saya tidak dapat menemukannya.
ios
interface-builder
autolayout
nslayoutconstraint
DemoniacDeath
sumber
sumber
Jawaban:
Perbarui Xcode 5.1b5
Ctrl + klik dan seret dari tampilan dan lepaskan saat penunjuk berada di atas tampilan. Pilih "Rasio Aspek". Ini akan membuat batasan di mana item pertama dan kedua adalah tampilan.
Sebelum Xcode 5.1
Anda tidak bisa karena editor lebar / tinggi tidak memiliki bidang untuk dikaitkan dengan properti lain atau menyetel rasio:
Oleh karena itu, Anda tidak dapat mengekspresikan kode berikut di Interface Builder:
CGFloat ratio = 1.0; NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:myView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:myView attribute:NSLayoutAttributeHeight multiplier:ratio constant:0]; constraint.priority = 1000; [myView.superview addConstraint:constraint];
sumber
Harap tambahkan batasan baru, rasio aspek menjadi 1: 1 pada elemen UI seperti pada gambar.
sumber
Untuk memulai, kontrol seret secara diagonal dari tombol ke tombol itu sendiri. Menu kontekstual akan muncul, di mana Anda dapat menambahkan batasan lebar dan tinggi. Shift + Klik masing-masing; sebuah tanda centang akan muncul yang menunjukkan bahwa Anda telah menambahkan batasan. (Jika Anda tidak sengaja menutup dialog sebelum menambahkan keduanya, tidak apa-apa, ulangi langkah seret dan setel yang lainnya):
Saat pertama kali ditambahkan, batasan ini mengambil lebar dan tinggi tombol saat ini, jadi Anda harus menyesuaikan setiap batasan untuk memberikan nilai yang lebih sesuai. Kita harus melakukan ini satu per satu, meskipun gambar kita persegi, jadi pastikan untuk menggunakan nilai konstan yang sama di kedua batasan untuk mengubah ukuran tombol secara proporsional. Klik dua kali pada batasan, dan masukkan nilai yang lebih kecil di bidang konstannya:
sumber