2013-09-21 11 views
14

Wenn ich meine App auf IOS7-Simulator teste. Manchmal fand ich es seltsam, wenn ich sizeToFit von UITextView benutze. Der Rahmen nach sizeToFit scheint richtig, aber der Text kann nur teilweise wie das Foto unten zeigen. (Der graue Bereich zeigt die UITextView neuen Rahmen nach sizeToFit, sollte der ganze Satz sein „die ein gespanntes Verhältnis zwischen den beiden gefunkt.“)Seltsame Sache tritt auf, wenn Sizetofit eines UITextView in IOS7

enter image description here

UITextView Der Text über attributedText eingestellt ist. Es scheint, das Problem tritt nur bei einigen Sätzen auf und ist für die meisten Sätze OK.

Ich habe dieses Problem mehrmals getroffen und kann es noch nicht lösen. Jede Hilfe wird geschätzt. Vielen Dank.

Update:

Schließlich löse ich das Problem in einer hässlichen Art und Weise. Ich habe den Text der textView zurückgesetzt.

NSString *text = textView.text; 
textView.text = @""; 
textView.text = text; 

Jetzt kann es den gesamten Inhalt nach sizeToFit zeigen. Ich denke, es scheint wie ein IOS 7-Bug.

+1

Erhöhen Sie die Höhe des Textview-Rahmens. – Romance

+0

Ich habe die backGroundColor von UITextView bereits auf graue Farbe gesetzt. (die graue Fläche des obigen Fotos). Die Rahmenhöhe des Textview reicht aus, um den gesamten Text anzuzeigen. – echo

+0

Vielleicht [textView setNeedDisplay]? –

Antwort

0

Haben Sie "Clip Subviews" im Interface Builder aktiviert?

Versuchen Sie es zu deaktivieren oder setzen Sie diese Eigenschaft auf "NEIN".

+0

Ich erstelle UITextView durch Kodierung und nicht benutzt Interface Builder. Ich kann die ClipSubviews Eigenschaft auch nicht finden. Kannst du mir ein paar Tipps geben? – echo

+0

Dies kann im Code gemacht werden, indem man 'clipsToBounds = NO 'setzt, aber das scheint das Problem nicht zu lösen. – alexshafran

+0

das hat das Problem nicht gelöst –

2

Bemerkt in IOS7 sizeToFit nicht funktionierte auch - vielleicht die Lösung, die Sie kann auch helfen, die zusätzliche layoutIfNeeded

benötigt
[UITEXTVIEW sizeToFit]; 
[UITEXTVIEW layoutIfNeeded]; 
[UITEXTVIEW setTextContainerInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 
18

ich das gleiche Problem hatte, dauerte es eine Weile, um es herauszufinden, Sie müssen einfach nur den Textcontainer

[textview sizeToFit]; 
[textview.textContainer setSize:textview.frame.size]; 
+0

Vielen Dank! Ich habe drei Stunden damit verschwendet. – amb

+0

Toller Fund, ersparte mir viel Zeit. – zimmryan

+0

Super danke! – codepushr

0

Versuchen sie dies es funktionierte für mich ändern.

[textView setTextContainerInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 
Verwandte Themen