2016-10-17 2 views
1

Im Wesentlichen versuche ich eine UIStackView mit einigen Elementen zu erstellen, die obere Ränder und untere Ränder hat. Zum BeispielPlatz innerhalb bestimmter Elemente innerhalb einer Stackview setzen

| item one | 
| item two | 
|   | 
| itemfour | 

Ich habe versucht, eine spacerView hinzuzufügen:

let textField1 = UITextField(text: "one") 
let textField2 = UITextField(text: "two") 
let textField3 = UITextField(text: "four") 
let spacerView = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100)) 

viewStack.addSubView(textField1) 
viewStack.addSubView(textField2) 
viewStack.addSubView(spacerView) 
viewStack.addSubView(textField3) 

jedoch die Höhe, dass ich die spacerView bin die Einrichtung scheint nicht den Raum zu bewirken, die in der Stapelansicht erstellt wird.

PS: Wenn es einen besseren Weg, oben auf das Hinzufügen und unteren Ränder zwischen zwei Elementen, ich bin auf jeden Fall offen, um es als eine UIView Zugabe fühlt sich wirklich Hacky

Antwort

0

Sie könnten:

  1. a Stellen spacer view das ist ein UILabel mit text von einem einzigen Raum (" "). Dadurch erhalten Sie eine leere Zeile, die die gleiche Höhe wie der Rest Ihres Textes hat. Dies funktioniert, wenn die Distribution auf fillEqually eingestellt ist (es funktioniert auch in anderen Modi, aber ich erwähne es, weil distribution in Option # 2 von Bedeutung ist).

oder

  1. eine Unterklasse von UIView Erstellen und außer Kraft setzen ihre intrinsicContentSize, eine CGSize Rückkehr, die die gewünschte Höhe angibt. Setzen Sie diese Ansicht nicht auf frame (d. H. Lassen Sie die UIStackView den Rahmen der Ansicht verwalten). Beachten Sie, dass diese Methode nur funktioniert, wenn die Verteilung der UIStackViewnicht auf fillEqually festgelegt ist.
Verwandte Themen