2015-08-28 7 views
9

Ich bin ein Android-Entwickler versuchen, iOS-Entwicklung in Swift zu lernen. Ich habe mich gefragt, wie Sie in Xcode "wrap_content" erreichen. Irgendwelche Ideen? Welche Variablen müssen im Attributinspektor geändert werden?Wie machen Sie "wrap_content" (Android XML-Syntax) in iOS Swift

+0

Wenn Sie Textumbruch in die nächste Zeile sich beziehen, dann nehme man einen 'UILabel * myLabel' haben, dann können Sie tun' myLabel.numberOfLines = 0; 'und' myLabel.lineBreakMode = NSLineBreakByWordWrapping; ' – Zhang

+0

Sie haben Irgendeine Lösung finden? –

Antwort

4

Versuchen folgenden Code, der Textview-Rahmen nach passt es ist daten-

let fixedWidth = textView.frame.size.width 
textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) 
let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) 
var newFrame = textView.frame 
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height) 
textView.frame = newFrame; 
+0

funktioniert das für UILabel und UIButton? – andy7586

3

Der Android docs Zustand, dass wrap_content enthalten:

erzählt Ihrer Ansicht nach Größe sich auf die durch ihren Inhalt erforderlichen Abmessungen.

Das klingt analog zu dem, was Apple die intrinsic content size nennt. Sie zeigen detailliert, wie es im Attributinspektor here konfiguriert wird.


Um die intrinsischen Inhalte Größe eines UIView (wie ein UILabel oder UIButton) außer Kraft setzen, würden Sie einfach UIView's intrinsicContentSize() method außer Kraft setzen müssen.

+0

Was mache ich, wenn ich nur die Höhe wrap_content (intrinsic content size) machen will. Ich schreibe dies übrigens in Swift. – andy7586

+0

@ andy7586 Sie müssen verstehen, dass die * intrinsic content size * die Größe ist, die ein Element (sagen wir ein 'UIButton') natürlich sein soll. Dies würde für eine Schaltfläche auf der Schriftgröße der Beschriftung basieren (vorausgesetzt, Sie haben es mit einem Titel festgelegt) und der Überschrift titleEdgeInsets - im Wesentlichen die Füllung zwischen dem Text und der Schaltfläche. Um also nur den inneren Inhalt * Höhe * einer Schaltfläche zu ändern, können Sie die Schriftgröße ändern oder die 'titleEdgeInsets' modifizieren. Dies oder Unterklasse der 'UIButton' in Ihrer eigenen benutzerdefinierten Klasse, die die Methode 'intrinsicContentSize()' überschreibt, indem die Höhe geändert wird. – pxlshpr

+2

Ihr Link ** Sie erklären, wie es hier im Attributinspektor konfiguriert wird. ** ist tot –

1

u können dies in Storyboard

  1. wählen Sie die UIView *
  2. im Attribut-Inspektor wählen Zeilenumbrüche
  3. Zeilenumbruch

sicher für die Ansicht definiert keine andere Einschränkung sein wählen welche die Breite begrenzen!

+6

Dies funktioniert nur auf Text, wrap_content auf Android funktioniert auf allen Ansichtselementen. –

Verwandte Themen