Zentrieren von zwei Schaltflächen mit Cocoa Auto Layout
Ich habe ein problem mit Cocoa Auto-Layout und kann nicht meinen Kopf um dieses problem.
Alles was ich möchte, zu erreichen, ist zwei Tasten haben immer zentriert in einer Ansicht wie in der Abbildung unten dargestellt.
Ich habe versucht viele verschiedene Ansätze ohne Erfolg 🙁 bitte helfen Sie mir hier draußen.
InformationsquelleAutor der Frage Bartek Chlebek | 2013-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anderen trick, dies zu tun ist, um das ausrichten der rechten Seite des
button
zu werden, halb so groß wie der Abstand von der Mitte dessuperview
und die linke Seitebutton2
zu werden, halb so groß wie der Abstand von der Mitte dessuperview
.Dies auch nur wirklich funktioniert, wenn Sie eine superview, dass nur umgibt die beiden Ansichten, die Sie wollen, um das Zentrum obwohl.
InformationsquelleAutor der Antwort iain
Ich Schreibe dies aus dem Gedächtnis, so dass hoffentlich alle Informationen, die ist die richtige. Ich bin mit XCode5. Hier ist der Weg, ich endete damit, dass das ab keine Einschränkungen:
Wählen Sie beide Tasten und fügen Sie Einschränkungen, um Ihre Höhe und
Breite im Hinzufügen von Neuen Constraints-Fenster, zugänglich von der zweiten
rechts unten auf die Schaltfläche des IB-Leinwand.
Beiden Tasten noch ausgewählt fügen Sie Einschränkungen, um Ihre Y
position. Entweder der Raum über oder Raum unten in der Add New
Einschränkungen-Fenster tun.
Wählen Sie nun die Tasten 1 und fügen Sie ein alignment-constraint "Horizontale
Center Im Container" im Hinzufügen von Neuen Alignment-Constraints-Fenster
zugänglich von den ersten button unten rechts in der IB Leinwand.
Standardmäßig ist die "Konstante" mit dem Wert der zusätzlichen Einschränkung ist 0. Wir
möchte das ändern, weil es falsch ist.
Zu diesem Zeitpunkt die Taste 1 wird eine gelben Balkendie senkrecht
durch es. Dies ist eine Warnung, die besagt, dass der horizontale center
der Knopf ist nicht gleich der horizontalen Mitte des Containers
+ die Einschränkung der Konstanten (0). Die Anzahl auf die vertikale Leiste ist, wie weit Weg von der Mitte der Schaltfläche ist. Denken Sie daran, dass Nummer.
Doppelklicken Sie entweder auf die vertikalen gelben Balken auf der Taste 1 (Fingerfertigkeit
erforderlich) oder die select-Taste 1 wechseln Sie in den linken Bereich und klicken Sie auf die
Herrscher und "auswählen und Bearbeiten" die Einschränkung genannt "Align-Center X
zu:".
Eingang der Anzahl aus Schritt 4 in der Textfeld mit der Bezeichnung "Konstante".
Die Taste 1 hat nun zufrieden und alle die Einschränkungen, die es braucht, um für seine
display. Es hat eine Breite, Höhe, Y (Stauraum oben oder unten Raum
Einschränkung), und jetzt eine X (horizontal zentriert ausrichten). Button 2,
allerdings fehlt noch Ihre X-position, die es können piggy-back off
Taste 1.
Select-Taste 2springen das Hinzufügen von Neuen Zwängen, die Fenster und einfach set
die führenden Leerzeichen auf der Taste 1 (der linken Leiste aus dem oberen weißen Feld).
Sollten Sie haben jetzt zwei Tasten, die wird immer bleiben in der Mitte der container mit einer festen Breite von einander getrennt.
InformationsquelleAutor der Antwort jmathew
Einen netten trick, mit Auto-Layout ist die Verwendung von unsichtbaren Ansichten als Abstandhalter. Das constraint-system noch legt Sie aus, als normal. In diesem Fall, dass der Abstand zwischen den beiden buttons kann eine unsichtbare anzeigen. Sie können die Einschränkungen von dieser Einschränkung string:
Dann erstellen Sie eine Einschränkung festlegen
invisibleView.centerX = superview.centerX
.InformationsquelleAutor der Antwort Bridgeyman
Wenn Sie eine Feste Breite haben Tasten und Sie wollen festen Abstand zwischen den beiden dann folgenden Schritten wird die Arbeit machen können :
Width
undHeight
constraint
zubutton1
Beispiel-Wert: 100 Höhe und Breite 100.constraint
Equal Widths
undEqual Heights
.Horizontal Spacing
zwischenbutton1
undbutton2
. oder sagen wir es hinzufügenLeading Space
zubutton2
ausbutton1
. Beispiel-Wert : 150button1
und fügen Sieconstraint
Horizontally in Container
mit -125 Wert.constrains
wieVertical Spacing to Container
etc wie pro erforderlich.Beispiel Wert 125 ist gleich (
button1
width
/2) + (Horizontal Spacing
/2) die 100/2 + 150/2 = 125.So hinzufügen
Horizontal in Container
zu -125 bewegen wird, diebuttons
auf der linken und das wird dieses layout center im Bildschirm.Beispiel layout und-Einschränkungen Bilder unten angehängt :
InformationsquelleAutor der Antwort Dashrath
Im Grunde genommen habe ich zwei
UIButtons
in meinemUITableViewCell
unten positioniert werden muss, dass immer zentriert und mit demselben breiten. Dies ist, wie ich es zu arbeiten in Xcode 7.2. Ich bin über Swift-durch die Art und Weise, wenn das in irgendeiner Weise damit zusammenhängen.InformationsquelleAutor der Antwort jaytrixz
Können Sie erzielt, wie unten übrigens auch.
1.Nehmen Führendes Leerzeichen für den linken button, werden Nachgestellte Leerzeichen für rechts-Taste.
2.Konstruieren Auslässe für Führende und Nachfolgende Einschränkungen.
3.Caluclate Konstanten wie unten Formel.
Hoffe es hilft dir.
InformationsquelleAutor der Antwort Vishnuvardhan
Tolle Tipps.
In meinem Fall wollte ich die buttons zentriert werden 10 Pixel von der Mitte auseinander meiner Ansicht also mein Mathe ist etwas anders
InformationsquelleAutor der Antwort Klajd Deda