Autoresize UITextView und UIScrollView
Habe ich schon mehrere sucht, auf Stack Overflow und Google, aber ich konnte nicht finden eine Lösung für mein problem.
Ich habe eine Detailansicht für ein Produkt, das enthält eine UIScrollView und ein paar Untersichten (UIImageView, UILabel, UITextView). Ein Beispiel finden Sie hier.
Zuerst möchte ich autoresize der UITextView (nicht der text selbst!) um die entsprechende Höhe. Dann möchte ich autoresize die gesamte UIScrollView, so dass es passt die Höhe meiner UITextView und die genannten Elemente. Ich habe versucht den folgenden code:
myUITextView.frame = CGRectMake(2.0, 98.0, 316.0, self.view.bounds.size.height);
[scrollView setContentOffset:CGPointMake(0.0, 0.0) animated:NO];
scrollView.contentSize = CGSizeMake(320.0, 98.0 + [myUITextView frame].size.height);
[self.view addSubview:scrollView];
98.0 + [myUITextView frame].Größe.Höhe), weil mein Gedanke war: Nach dem abrufen der Höhe von myUITextView, fügen Sie die Höhe der anderen Untersichten (98.0).
Leider funktioniert es nicht sehr gut. Je nach Inhalt der UIScrollView, es ist zu kurz oder zu lang. Ich habe einige logging-mit dem Ergebnis, dass die Höhe der UITextView ist immer das gleiche:
2010-01-27 14:15:45.096 myApp[1362:207] [myUITextView frame].Größe.Höhe: 367.000000
Dank!
InformationsquelleAutor dennis3484 | 2010-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eigentlich eine sehr einfache Art und Weise zu tun, die Größe der UITextView auf die richtige Höhe mit Ihrer contentSize.
Eine Sache zu beachten ist, dass die richtige contentSize ist nur verfügbar nach der UITextView wurde Hinzugefügt, um die Ansicht mit addSubview. Vor, die er gleich zu Rahmen.Größe
InformationsquelleAutor Ronnie Liew
Einen UITextView nicht automatisch in der Größe anpassen, sich dem Inhalt (nicht so weit wie ich weiß, sowieso), so dass Sie brauchen, um die Größe des Textes selbst, und die Größe der UIView entsprechend.
Funktionen auf dieser Seite helfen - Sie können verwenden Sie, um die Breite und Höhe eines Strings, so etwas wie
Dann können Sie das layout der anderen Komponenten um ihn herum.
Hoffe, das hilft,
S
PS Achtung, der link zu den docs ist richtig, aber mein code-Beispiel ist nicht getestet, sorry 🙂
Ich habe gerade überprüft die docs und du hast absolut Recht, sorry! Ich habe Probleme mit den es manchmal die Rücksendung der falschen Höhe zu und ich habe genau die gleiche Lösung, die Sie haben - hinzufügen 30px 🙂
InformationsquelleAutor deanWombourne