Frage "Width equals height" Einschränkung in Interface Builder


Ich kann keine Möglichkeit finden, eine 'quadratische' Einschränkung zu erstellen, dh 'Breite entspricht Höhe' in Interface Builder. Ich denke, es ist möglich, solche Einschränkungen programmgesteuert hinzuzufügen. Kann ich etwas in IB machen? Vielleicht sehe ich es einfach nicht? Es scheint trivial, aber ich kann es nicht finden.


76
2018-03-01 22:03


Ursprung


Antworten:


Aktualisieren Sie Xcode 5.1b5

width equals height

Klicken Sie bei gedrückter Strg-Taste auf eine Ansicht und lassen Sie sie los, während sich der Zeiger über der Ansicht befindet. Wählen Sie "Seitenverhältnis". Es wird eine Einschränkung erstellt, bei der das erste und zweite Element die Ansicht ist.


Vor Xcode 5.1

Dies ist nicht möglich, da dem Editor für Breite / Höhe die Felder fehlen, die sich auf eine andere Eigenschaft beziehen oder das Verhältnis festlegen:

width constraint

Daher können Sie den folgenden Code in Interface Builder nicht ausdrücken:

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