UITextView in UITableViewCell sizeToFit funktioniert nicht wie erwartet

8

Ich habe ein UITextView , das ich verkleinern muss, damit es eine Breite hat, die sich erstreckt, um den Bildschirm zu füllen, aber variable Höhe, so dass es gerade groß genug ist, den ganzen Text anzuzeigen. Wenn die Größenanpassung stattfindet, sollte% ce_de% die minimal mögliche Höhe sein, damit sie in das Innere passt.

Um dies zu tun, habe ich den folgenden Code verwendet:

%Vor%

Wenn ich das tue, scheint das UITextView nicht die minimal mögliche Höhe zu haben. Es scheint, dass etwas überschüssiger Platz übrig bleibt. Hier ist ein Beispiel (ich habe die Hintergrundfarbe auf rot gesetzt, um meinen Punkt zu verdeutlichen):

Könnte jemand bitte sagen, warum dies geschieht und wie ich das Problem lösen kann? Bitte beachten Sie, dass sich das UITextView in einer benutzerdefinierten UITableView-Zelle befindet. Diese Zelle verwendet die Autorisierungsmasken zum horizontalen Ausdehnen, um den Bildschirm abhängig von der Ausrichtung auszufüllen.

Ich habe viel Zeit damit verbracht, das zum Laufen zu bringen, aber ich sehe nicht, warum unten viel Platz ist und auch wenn ich das Gerät rotiere, scheint die Höhe der UITextViews alle gleich zu bleiben (obwohl ich anrufe die Methode UITextView , für die ich auch die Methode row heigh definiert habe.

    
The Crazy Chimp 27.01.2013, 11:23
quelle

5 Antworten

9

Ich hatte einmal das gleiche Problem und habe das gefunden.

%Vor%

Hoffe, das hilft.

    
mpwhitt 27.01.2013, 22:39
quelle
2

Hier ist die Lösung für Ihr Problem.

%Vor%

Verwenden der Zelle.

%Vor%     
SAPLogix 08.02.2013 11:17
quelle
1

Die superview der UITextView (oder eine Geschwisteransicht ist die untere Kante von Ihrem UITextView wird angeheftet) ist, was die Höhe der UITextView davon abhält, abzunehmen. Ohne die Ansichtshierarchie Ihrer Ansicht zu kennen, würde ich empfehlen, setNeedsLayout in der übergeordneten Ansicht von UITextView aufzurufen.

    
Fruity Geek 28.01.2013 00:29
quelle
1

Ich hatte auch in zwei meiner früheren Projekte das gleiche Problem. Was ich getan habe, war das.

%Vor%

Übergeben Sie einfach die Zeichenfolge, deren Höhe Sie bestimmen müssen, und diese Methode gibt Ihnen die Größe zurück. Stellen Sie diese Höhe für Ihr Etikett ein.

Beachten Sie auch, dass Sie anstelle von UITextView ein UILabel mit einer Zeilenanzahl von 0 verwenden müssen. Diese Methode funktioniert perfekt mit Label. Am Anfang habe ich auch UITextView benutzt, was das Offsetproblem verursacht hat. Später mit Label funktionierte das perfekt. Versuchen Sie es mit einem UILabel. Hoffe das hilft dir. Überprüfen Sie auch die Größe der Schriftart, die Sie für das Etikett verwendet haben. Machen Sie sie gleich (für Label und Wert innerhalb der Methode angegeben).

    
Meera 04.02.2013 07:08
quelle
0

Ich stimme mit mpwhitt überein, würde aber einen kleinen Unterschied hinzufügen, um die dehnende Natur Ihrer Tabellenzellen in die Tat umzusetzen.

%Vor%

Auf diese Weise müssen Sie sich keine Sorgen machen, wenn sich die Schrift ändert oder wenn sich die Etikettenbreite ändert. Ich bin mir nicht sicher, ob das den kleinen Streifen überschüssiger Höhe entfernen wird, aber ich habe nie gebraucht, dass das so genau funktioniert, wie du fragst.

Wäre es möglich, nur 3-5 Pixel von der Höhe abzuziehen, die Sie finden?

    
Putz1103 02.02.2013 02:24
quelle