2017-06-12 2 views
1

Im Ändern der Größe eine benutzerdefinierte Tastatur machen, und ein Etikett und ein Textfeld in der über die Tastatur links Raum zentrierte zu wollen, dachte ich, der richtige Weg, um sie in einem UIstackView zu übernehmen wäre, und dann den Stapel Zentrierung. Wie auch immer, ich habe einige Probleme mit dem Stapel, der die Größe meines TextFields verändert, was dazu führt, dass der eingegebene Text abgeschnitten wird.UIStackView meiner Ansichten

versuchte ich compressionresistance und eine Reihe von verschiedenen Lösungen hinzufügen, aber es ist mir klar, dass im einige Informationen über vermisste wie UIStackViews arbeiten. Normalerweise mache ich sie arbeiten, aber die ganze Größenänderung Teil verstehe ich nicht.

Die ersten beiden Bildschirme haben keinen Stapel und fügen sie als Unteransicht der viewcontrollers-Ansicht hinzu. Der zweite Screenshot zeigt die stackView, die die Größe meines Textfelds jedes Mal ändert, wenn die Tastatur resigniert wird.

Wie kann ich verhindern, die stackview von den darin enthaltenen Ansichten Ändern der Größe?

enter image description here enter image description here

enter image description here

enter image description here

Antwort

1

Es scheint UIStackView ist von Natur aus ein Auto Layout-Komponente, und wenn es Ihr angeordnet Subviews fügt es automatisch positioniert sie Einschränkungen verwenden.

Da die UIStackView fügt Einschränkungen ihrer eigenen, und der beste Weg, fand ich es zu stoppen, einfach war, die Subviews constraits explizit festgelegt:

textField.widthAnchor.constraint(equalToConstant: 300).isActive = true 
0

Apple-doesnt wie dynamische StackViews: „Im Allgemeinen Sie sollten keine dynamischen Stack-Ansichten verwenden, um einfach einen Scratch-Build-Clone für die Tabellenansicht zu implementieren. " Lesen Sie die Apple Documentation on UIStackView für Details.

Verwandte Themen