2016-04-14 8 views
2

Ich bin für eine UITextView die falsche Höhe immer noch seine Größe wie dieses Ich Berechnung:Erste falsche Höhe für UITextView mit boundingRectWithSize: Optionen: context

CGRect requiredHeight = [self boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) 
              options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading) 
              context:nil]; 

Wenn ich hinzufügen, um die Höhe zu meinem Rahmen I kann den gesamten Text, aber nicht die letzte Zeile sehen. Ich weiß nicht warum. (Text war ein HTML, bevor ich es in eine NSAttributedString verwandelte).

+0

Versuchen Sie, Ihre Zeichenfolge auf unerwartete Zeichen darin zu überprüfen. –

+0

Lassen Sie mich @EvgenyKarkan überprüfen Aber es ist eine französische Zeichenfolge, die ich vom Server – Gabox

+0

erhalte, scheint es nicht das Problem zu sein. Ich habe alle nicht gebräuchlichen Zeichen entfernt und bekomme immer noch die falsche Größe. @EvgenyKarkan – Gabox

Antwort

3

also, die Antwort ist sehr offensichtlich, aber nicht immer sehen wir Dinge so leicht !.

ERKLÄRUNG:

Die Antwort ist, wenn wir die Höhe bekommen für ein bestimmtes Feld benötigen (es Etikett sein könnte, Textview, etc.) stellen wir ein Verfahren aus diesen Bereichen seine Höhe berechnen verwenden sollte, aufgrund Wenn sie die Höhe aus einem Text berechnen (ohne das Feld zu berücksichtigen), berücksichtigen wir nicht die speziellen Eigenschaften, die das Feld haben könnte.

kurze Antwort:

So kurze Antwort, für UITextView Sie [textView sizeThatFits:] verwenden sollen, seine Höhe zu bekommen, ist es wahrscheinlich der beste Weg, es zu tun, wenn Sie nicht auto layout verwenden.

Beratung: Ich ermutige Sie, autolayout zu verwenden, wenn Sie Ihre UI problemlos migrieren können.

+3

'sizeThatFits' gibt eine genaue Höhe zurück, wo' boundingRectWithSize' nicht ist. Vielen Dank! – capikaw

Verwandte Themen