2013-09-21 13 views
14

Kiedy testuję moją aplikację na symulatorze IOS7. Czasami okazało się, że dziwne jest używanie sizeToFit z UITextView. Wygląda na to, że ramka po numerze sizeToFit jest odpowiednia, ale tekst może pokazać tylko częściowo, tak jak na zdjęciu poniżej. (Szary obszar oznacza UITextView nową ramkę po sizeToFit, całe zdanie powinno być „która wywołała napiętej relacji pomiędzy nimi.”)Dziwne zjawisko występuje podczas używania sizetofit z UITextView w IOS7

enter image description here

tekst UITextView jest poprzez attributedText. Wygląda na to, że problem występuje tylko w przypadku niektórych zdań i jest prawidłowy w przypadku większości zdań.

Kilka razy spotkałem się z tym problemem i nie mogę go jeszcze rozwiązać. Każda pomoc zostanie doceniona. Dzięki.

Aktualizacja:

końcu rozwiązać ten problem w sposób brzydki. Zresetowałem tekst textView.

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

Teraz może pokazać całą zawartość po sizeToFit. Wydaje mi się, że wygląda na błąd IOS 7.

+1

Zwiększ wysokość ramki Texthow. – Romance

+0

Już ustawiłem backGroundColor z UITextView na szary kolor. (szary obszar zdjęcia powyżej). Wysokość ramki tekstu jest wystarczająca do wyświetlenia całego tekstu. – echo

+0

Może [textView setNeedDisplay]? –

Odpowiedz

0

Czy masz "podekspozycje klipów" zaznaczone w narzędziu do budowania interfejsu?

Spróbuj odznaczyć lub ustawić tę właściwość na "NIE".

+0

Tworzę UITextView przez kodowanie i nieużywany program budujący interfejs. Nie mogę znaleźć również właściwości clipSubviews. Czy możesz podać mi jakieś wskazówki? – echo

+0

można to zrobić w kodzie, ustawiając 'clipsToBounds = NO', ale nie wydaje się, aby rozwiązać problem. – alexshafran

+0

to nie rozwiązało problemu. –

2

zauważony w IOS7 sizeToFit nie działa także - być może rozwiązanie może pomóc też potrzebuje dodatkowego layoutIfNeeded

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

miałem ten sam problem, zajęło mi trochę czasu, aby zrozumieć to, ty wystarczy zmienić wielkość pojemnika tekstowej

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

Wielkie dzięki! Z tego powodu zmarnowałem trzy godziny. – amb

+0

Świetne znalezisko, zaoszczędziło mi mnóstwo czasu. – zimmryan

+0

Niesamowite dzięki! – codepushr

0

Spróbuj to pracował dla mnie.

[textView setTextContainerInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 
Powiązane problemy