2016-07-12 19 views
0

Ich habe ein etwas komplexes Layout, das ich Einschränkungen machen möchte. This is it.Probleme mit AutoLayout Xcode Einschränkungen

Die obersten drei müssen alle gleich weit voneinander entfernt sein und gleiche Breiten und Höhen haben. Die unteren drei müssen gleiche Breite und Höhe haben und auch gleich weit voneinander entfernt sein.

Wie kommt es, dass Xcode keine äquidistante Randoption hat? Ich kann keine bestimmte Margin-Einschränkung erstellen, da sie auf kleineren Geräten nicht korrekt aussieht. Nichts, was ich tue, scheint akzeptable Einschränkungen zu schaffen.

Danke!

+3

Setzen Sie sie in eine 'UIStackView' – dan

Antwort

1

Für die oberen drei müssen Sie 5 zusätzliche Ansichten erstellen, diese zwischen diesen drei Ansichten platzieren und festlegen, dass sie die gleiche Breite haben sollen. Einer von ihnen sollte eine konstante Breite haben (als alle anderen wird auch diese Breite bekommen). Dann binden Sie sie alle, indem Sie führende und treading-Bedingungen zwischen ihnen verbinden. Als nächstes müssen Sie die Breite und Höhe Ihrer Ansichten einstellen. Die Marge, die Sie benötigen, wird die fünf Ansichten sein, die Sie zuvor zwischen ihnen platziert haben.

Das gleiche, was Sie mit Ihren anderen Ansichten tun können, nur einige Ansichten hinzufügen, um sie als Ränder zu machen.

Haben Sie gesucht? Wenn nicht, bitte beschreiben Sie Ihr Problem und ich werde versuchen, es zu lösen.

+0

Ich bin verwirrt, was mache ich mit meiner 5. zusätzlichen Ansicht? Man würde auf der linken Seite von Monaten, rechten Seite von Monaten, rechten Seite von Tagen und rechten Seite von Wochen gehen. Wohin würde der 5. gehen? – user5812721

+0

Woops, dort müssen 4 Ansichten sein. Mein Fehler. Bit die wichtigste Logik, die Sie bekommen haben) – Volodymyr

1

Wie @Dan sagte, UIStackView ist dein Freund. Setzen Sie die oberen drei in eine horizontale Stapelansicht und die unteren drei in eine vertikale Stapelansicht. Ihre anderen Alternativen bestehen darin, sich mit dem Multiplikator für einzelne Beschränkungen zu befassen, d. H. 0,0 0,333, 0,667. Das würde viel Arbeit erfordern. Eine andere Wahl, wenn Sie bereit sind, zu warten, um dies in Xcode 8 zu verwenden, ist, dass Apple die alten Federn und Verstrebungen Stil von Pre-Autolayout in Xcode 8 wieder aktiviert hat, und Sie als Alternative verwenden können, und/oder gemischt mit Auto-Layout in Xcode 8. Versuchen Sie zuerst die UIStackview, aber es ist der Weg des geringsten Widerstandes.

+0

Ich versuche, dies zu folgen [Tutorial] (https://www.raywenderlich.com/114552/uistackview-tutorial-introducing-stack-views) auf 'UIStackView'. Wenn ich meine Top 3 in einen Stapel stecke und feststecke (oben: 12, links: 12, rechts: 12, unten: 15), bekomme ich einen Constraint-Fehler für den oberen Rand. Ich habe auch gleich viel Abstand, aber die Ansichten werden sich nicht voneinander entfernen. [Pic] (http://imgur.com/f0Rn2Ud). – user5812721