Ich habe bereits mehrere Suchen auf Stack Overflow und Google, aber ich konnte keine Lösung für mein Problem finden.Autoresize UITextView und UIScrollView
Ich habe eine Detailansicht für ein Produkt, das eine UIScrollView und einige Unteransichten (UIImageView, UILabel, UITextView) enthält. Sie können ein Beispiel here finden.
Zuerst möchte ich die UITextView (nicht den Text selbst!) Auf die entsprechende Höhe autoresize. Dann möchte ich den gesamten UIScrollView so autorisieren, dass er der Höhe meines UITextView und den darüber liegenden Elementen entspricht. Ich habe den folgenden Code versucht:
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 Rahmen] .size.height) weil mein Gedanke war: Nach der Höhe myUITextView bekommen, fügen Sie die Höhe der anderen Subviews (98,0) zu ihm.
Leider funktioniert es nicht sehr gut. Je nach Inhalt des UIScrollView ist es zu kurz oder zu lang. Ich habe mit dem Ergebnis, einige Protokollierung, dass die Höhe des UITextView ist immer das gleiche:
2010-01-27 14: 15: 45,096 myApp [1362: 207] [myUITextView frame] .size.height: 367,000000
Vielen Dank!
Danke für Ihre Hilfe. Es scheint sizeWithFont: forWidth: lineBreakMode: funktioniert nur für eine einzelne Textzeile. Ich habe sizeWithFont versucht: constrainedToSize: lineBreakMode: und es funktioniert irgendwie. Manchmal berechnet es nicht die richtige Höhe. Ich denke, es liegt an einigen Zeilenumbrüchen in meiner Textquelle, also habe ich 30 px zum Button hinzugefügt. – dennis3484
Ich habe gerade die Dokumente überprüft und Sie haben absolut Recht, Entschuldigung! Ich habe Probleme damit gehabt, manchmal auch die falsche Höhe zurückzugeben und ich habe genau die selbe Lösung benutzt wie du - addiere 30px :) – deanWombourne