Pertanyaan "Lebar sama dengan tinggi" kendala dalam Interface Builder


Saya tidak dapat menemukan cara untuk membuat batasan 'persegi', yang berarti 'lebar sama dengan tinggi' di Interface Builder. Saya kira itu mungkin untuk menambahkan kendala seperti itu secara terprogram. Apakah ada yang bisa saya lakukan di IB? Mungkin aku tidak melihatnya? Tampaknya sepele, namun saya tidak dapat menemukannya.


76
2018-03-01 22:03


asal


Jawaban:


Perbarui Xcode 5.1b5

width equals height

Ctrl + klik dan seret dari tampilan dan lepaskan saat penunjuk di atas tampilan. Pilih "Aspek Rasio". Ini akan menciptakan kendala di mana item pertama dan kedua adalah tampilan.


Sebelum Xcode 5.1

Anda tidak bisa karena editor lebar / tinggi tidak memiliki bidang untuk berhubungan dengan properti lain atau mengatur rasio:

width constraint

Oleh karena itu, Anda tidak dapat mengungkapkan 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];

163
2018-04-18 17:53