2011-12-05 10 views
6

Próbuję skonfigurować trzyliniowy UILabel za pomocą XCode 4.2 i Konstruktora interfejsu, budując dla iOS 5. Po umieszczeniu UILabel, ustawiłem liczbę linii do 3 (ten problem występuje również w przypadku liczby linii ustawionych na 0), a ja użyłem opcji-Return, aby poprawnie przerwać linie we właściwości text. To wszystko pojawia się poprawnie w podglądzie storyboardu w Interface Builder. Problem polega na tym, że podczas budowania i uruchamiania aplikacji w symulatorze przerwy w linii są całkowicie ignorowane, a tekst po prostu zawija się w widoku UILabel, gdziekolwiek trzeba, tak jakby w tekście nie było żadnych podziałów linii.Podział linii w UILabel jest ignorowany przy kompilacji

Oczywistym szybkim rozwiązaniem jest po prostu ustawienie tekstu dla UILabel w kodzie lub wykonanie trzech UILabeli. Nie ma problemu. Jestem po prostu zaskoczony, dlaczego tak się dzieje, gdy etykieta jest tworzona wyłącznie w IB. Ktoś napotyka ten sam problem?

+0

Co się dzieje, jeśli skopiuj i wklej tekst na etykiecie w IB? tj. napisać w TextEdit.app lub coś takiego, a następnie skopiować. – mattjgalloway

+0

Niestety, niestety. – Chris

+0

To bardzo dziwne, ponieważ robię dokładnie to samo i to działa dla mnie, chociaż nie próbowałem tworzyć storyboardów, tylko normalne XIB. I mówisz, że jeśli ustawisz to w kodzie, działa dobrze? – mattjgalloway

Odpowiedz

9

to prawdopodobnie powinien być otwarty jako błąd, jednak tutaj jest obejście:

Zamiast Opcja-Return, użyj sterowania zwrotny i uderzył go dwukrotnie (pozostawiając pusty wiersz między wierszami tekstu w serii ujęć). Następnie wyświetli się prawidłowo zarówno w scenorysie, jak i na urządzeniu.

+0

Dziękujemy! Zadziałało. – Will

+0

[spróbuj tego linku] (http://stackoverflow.com/a/21654430/3577656) – Rajal

2

Wykorzystując tę ​​właściwość etykiety,

label.lineBreakMode=UILineBreakModeCharacterWrap; 
label.numberOfLines=0; 

Możemy podane dodać cały akapit na jednym przykładzie etykiet zobaczyć zrzut ekranu.

enter image description here

+1

Proszę rozważyć dodanie krótkiego wyjaśnienia do kodu tutaj. kod sam w sobie jest niejasny. – Amir

+0

To jest krótkie wyjaśnienie, W etykiecie (niebieski kolor) właśnie podałem akapit, aby zrozumieć łamacz linii. –

Powiązane problemy