Kann AutoLayout mehrere Schaltflächen gleichmäßig belegen?

8

Ich versuche, eine Ansicht zu erstellen, die einige vertikal platzierte Schaltflächen enthält, und möchte, dass die Abstände zwischen den Schaltflächen gleich sind, wenn das Fenster in der Größe geändert wird. Die Einschränkungen (unter Verwendung des visuellen Formats) für diese Ansicht sind:

%Vor%

Die Schaltflächen werden korrekt angezeigt, außer dass nur eines der drei als & gt; = 0 definierten Leerzeichen berücksichtigt wird, während die anderen Leerzeichen null bleiben (das Layout ist mehrdeutig).

Gibt es eine Möglichkeit, diese drei Leerzeichen mit AutoLayout gleich zu setzen?

    
erudel 28.11.2011, 17:12
quelle

3 Antworten

10

Machen Sie unsichtbare Ansichten, die sich zwischen jedem Tastenpaar befinden, und beschränken Sie dann die Breite dieser Ansichten, damit sie gleich sind.

V: | - [button1] [spacerView1] [button2] [spacerView2] [button3] - |

Erstellen Sie dann eine Einschränkung, die spacerViews so einstellt, dass sie dieselbe Breite haben, und eine Einschränkung, dass die Breite der ersten Spacer-Ansicht & gt; = 0 sein sollte.

    
Bridgeyman 28.11.2011, 17:37
quelle
4

Bridgeyman hat Recht, aber ich möchte hinzufügen.

%Vor%

Um ein bisschen prägnanter zu sein.

Sie müssen keine 0s zwischen -s setzen. Das gleiche gilt für Ihren horizontalen Abstand

%Vor%     
David Wong 27.09.2012 23:28
quelle
3

Anstatt Auto-Layout-Einschränkungen zu verwenden, sollten Sie die Schaltflächen in ein NSMatrix einbetten, für das autoresizesCell auf YES gesetzt ist. Dies wird den Abstand automatisch ohne unsichtbare Spacer Ansichten behandeln.

    
bames53 27.01.2012 00:44
quelle

Tags und Links