Ich kann keine Möglichkeit finden, eine 'quadratische' Einschränkung zu erstellen, was bedeutet, dass 'Breite gleich Höhe' in Interface Builder ist. Ich denke, es ist möglich, solche Einschränkungen programmgesteuert hinzuzufügen. Kann ich in IB etwas tun? Vielleicht sehe ich es einfach nicht? Es scheint trivial, aber ich kann es nicht finden.
ios
interface-builder
autolayout
nslayoutconstraint
DemoniacDeath
quelle
quelle
Antworten:
Aktualisieren Sie Xcode 5.1b5
Strg + Klicken und Ziehen aus einer Ansicht und Loslassen, 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 Breiten- / Höheneditor die Felder fehlen, um sich auf eine andere Eigenschaft zu beziehen oder das Verhältnis festzulegen:
Daher können Sie den folgenden Code in Interface Builder nicht ausdrücken:
quelle
Fügen Sie dem UI-Element wie im Bild eine neue Einschränkung mit einem Seitenverhältnis von 1: 1 hinzu.
quelle
Zu Beginn steuern Sie das Ziehen diagonal von der Schaltfläche zu sich selbst. Ein Kontextmenü wird angezeigt, in dem Sie Einschränkungen für Breite und Höhe hinzufügen können. Umschalt + Klicken Sie jeweils auf; Ein Häkchen zeigt an, dass Sie die Einschränkung hinzugefügt haben. (Wenn Sie den Dialog versehentlich schließen, bevor Sie beide hinzufügen, ist das in Ordnung. Wiederholen Sie einfach den Ziehschritt und stellen Sie den anderen ein.)
Beim ersten Hinzufügen nehmen diese Einschränkungen die aktuelle Breite und Höhe der Schaltfläche an. Sie müssen daher jede Einschränkung anpassen, um einen angemesseneren Wert zu erhalten. Wir müssen dies einzeln tun, obwohl unser Bild quadratisch ist. Verwenden Sie daher in beiden Einschränkungen denselben konstanten Wert, um die Größe der Schaltfläche proportional zu ändern. Doppelklicken Sie auf die Einschränkung und geben Sie einen kleineren Wert in das Konstantenfeld ein:
quelle