2016-05-10 9 views
0

bearbeiten schrumpfen: ich die richtige Lösung gefunden und wird es am Ende der Frage umfassenZugabe nächsten Nachbarn Zwänge zu einer NSTextField bewirkt, dass es auf die Größe des Textes

ich ein Textfeld haben. Ich beschränke das Textfeld auf den nächsten Nachbarn, was in diesem Fall die Ansicht ist, und wenn ich dies tue, gerät die Höhe für das Textfeld außer Kontrolle und stimmt mit der Größe des Textes überein. Wie kann ich das Textfeld auf den nächsten Nachbarn beschränken, ohne dass die Größe des Textfelds automatisch geändert wird? Unten sehen Sie ein Bild, das meine Einschränkungen und die orangefarbene Umrisslinie zeigt, auf die das Textfeld angepasst werden soll. Es zeigt auch, dass die Ansicht auf eine erwartete Höhe von 62 aka die Größe des Textfelds verkleinert wird.

image adding simple contraints causing the textfield to resize to a new height indicated by the dashed yellow line

Ich möchte noch hinzufügen, dass, wenn ich die Einschränkungen in Prüfer überprüft, fand ich, dass das Textfeld nicht immer auf erste Elemente gesetzt wurde. Als ich die Textbox als erstes Element in allen Einschränkungen anwendete, wurde die Breite editierbar.

Antwort:

1) Das Geheimnis Zwang zu einem Textfeld zum Hinzufügen es Inhalt umarmt als niedrige Priorität zB zu setzen. 250. Sehen Sie sich das obige Bild an und Sie können sehen, dass Inhalt, der vertikal umarmt, bei 750 oder hoher Priorität ist, während Inhalt, der horizontal umarmt, niedrige Priorität hat (= 250). Daher kann ich den nächsten Nachbarn für die Breite mit niedriger Priorität einschränken, aber nicht für die Höhe, die eine hohe Priorität hat. Für weitere Informationen diese Dokumentation

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithConstraintsinInterfaceBuidler.html#//apple_ref/doc/uid/TP40010853-CH10-SW2

2) überprüfen jede Einschränkung hat ein erstes und zweites Element in dem Inspektoren. Das zweite Element erhält seine Attribute (z. B. Größe) von der ersten. Doppelklicken Sie auf die Einschränkungen im Größeninspektor, wie oben dargestellt, um die Abhängigkeit näher zu untersuchen

+1

Scheint, dass Sie auch andere Einschränkungen haben, die mit der Höhe in Konflikt stehen. Deshalb werde ich vorschlagen, bestehende Beschränkungen zu entfernen und vertikale und horizontale Mittelbedingungen hinzuzufügen. –

+0

das ist ein guter Rat, danke. Es funktionierte. Obwohl ich die Größe des Textfelds nicht ändern konnte, konnte ich es in die richtige Position bringen. – jiminybob99

+0

Lassen Sie es mich wissen, wie kann ich mit Text Box Größe helfen. Wenn es dir hilft, möchte ich dich bitten, meine Antwort zu akzeptieren, danke :) –

Antwort

0

Ich schlage vor, bestehende Einschränkungen zu entfernen und vertikale und horizontale Mittelbedingungen hinzuzufügen.

1

Die Layout-Engine weiß nicht, welche Größe Sie die übergeordnete Ansicht (Ihr Ansichtscontroller in diesem Fall) wollen, also nimmt es den intrinsischen Inhalt Größe des Textfelds.

Möchten Sie, dass das Textfeld genau so groß ist, wie es sein muss? Dann berühre es nicht, dein Textfeld passt die Größe an, um den Text zu enthalten, und benutzt deine Beschränkungen, um sich selbst zu platzieren.

Soll der View-Controller eine bestimmte Größe haben? (z. B. wenn ein bestimmtes Hintergrundbild passen soll) Dann sollten Sie in Erwägung ziehen, der übergeordneten Ansicht Einschränkungen hinzuzufügen, damit sie eine bestimmte Größe oder ein bestimmtes Seitenverhältnis beibehalten.

Verwandte Themen