2010-08-05 29 views
7

Tôi đã nhìn thấy các câu hỏi tương tự ở đây, nhưng vẫn có thể tìm ra lý do tại sao nó không hoạt động. n không hoạt động trong UIlabel

Làm cách nào để thêm ngắt dòng (nói cách khác, thêm đoạn mới) vào giao diện người dùng đa cấp?

Tôi có một nhãn với rất nhiều văn bản,

lbl.numberOfLines = 0; 
lbl.sizeToFit; 

nhưng tôi vẫn nhận được một cái gì đó như thế này: "Một số văn bản ở đây \ nVà ở đây tôi muốn dòng mới"

Cảm ơn bạn

+0

làm cách nào để đặt văn bản trên nhãn? Tôi đã có vấn đề này một lần vì chuỗi thực sự là @ "some text \\ nmore text". – Sauleil

+0

Không, tôi không sử dụng lối thoát trong chuỗi gốc, tôi có một dấu gạch chéo ngược – Burjua

+0

AngeDeLaMort là chính xác. Văn bản IB tự động thoát khỏi \ char. Xin vui lòng xem câu trả lời của tôi. – Lytic

Trả lời

14

Nhãn không tôn trọng \ n, Bạn có thể sử dụng tùy chọn trả về (trong Trình tạo giao diện) để bắt buộc bạn muốn ngắt dòng.

Bạn có thể sử dụng UIWebView thay cho nhãn và sau đó bạn có thể định dạng theo ý bạn muốn. (Và thiết lập dòngBreakMode như AngeDeLaMort nói ở trên.)

+0

Và đừng quên để đặt số dòng 0! – Grsmto

+0

Điều này là không chính xác! UILabel sẽ tôn trọng \ n, nhưng nó sẽ không tôn trọng \\ n (vì lý do tốt!) :) – Lytic

1

Nếu chuỗi của bạn thực sự là ok, có thể bạn có thể thử thêm dòng này cũng như:

lbl.lineBreakMode = UILineBreakModeWordWrap; 
+0

Tôi đã thử nó, nhưng nó không giúp (( – Burjua

3

thực sự có một cách để làm điều đó. hãy thử

unichar chr[1] = {'\n'}; 
NSString *singleCR = [NSString stringWithCharacters:(const unichar *)chr length:1]; 
    [yourLabel setText:[NSString stringWithFormat:@"new%@line",singleCR]]; 
+0

nó không hoạt động? – prajakta

+0

điều này làm việc tốt bởi tôi – boreas

0

Tôi biết câu hỏi cũ, nhưng tôi đã tự hỏi - có thể vấn đề là lbl.sizeToFit;?

nếu bạn có thể đặt khung như CGRectMake (0,0,300,300) - điều đó có giải quyết được sự cố không? Bởi vì \n hoạt động bên cạnh tôi.

19

Đây là một câu hỏi cũ, nhưng chỉ muốn cho bạn biết rằng \r công trình như một say mê :)

6

Bạn có thể thử này One:

lbl.text = @"My \n label"; 
lbl.numberofLines = 0; 
+1

Nó làm việc cho tôi Cảm ơn bạn :) –

4

này nên làm việc:

lbl.lineBreakMode = NSLineBreakByWordWrapping; 
lbl.numberOfLines = 0; 
+0

Cảm ơn, tốt nhất +1 :) –

0
NSCharacterSet *charSet = NSCharacterSet.newlineCharacterSet; 
NSString *formatted = [[unformatted componentsSeparatedByCharactersInSet:charSet] componentsJoinedByString:@"\n"]; 
1

Sự cố của bạn có thể khác ... nhưng tôi là một ký tự theo nghĩa đen \n, thực tế là \\n trong bộ nhớ.

Tôi giải quyết nó với:

label.text = [rawText [email protected]"\\n" withString:@"\n"]; 

Bạn vẫn cần phải thiết lập chế độ ngắt dòng cũng như numberOfLines cho nó để làm việc.

1

sử dụng ctrl + Enter trong kịch bản, và làm cho số dòng là 0

0

sử dụng UILabel \ n để tạo dòng mới. \ n cần một khoảng trống ở phía sau.

+0

Một không gian là ** không ** cần thiết ở phía sau. – Dopapp

+0

Sẽ hữu ích hơn nếu bạn hiển thị ví dụ khi trả lời câu hỏi. Cảm ơn! – cb4

0

Đây là câu hỏi cũ nhưng nếu có ai muốn làm từ trình tạo giao diện.sau đó nó rất dễ dàng và đơn giản

chọn nhãn và thay đổi loại để do theo mặc định nó là đồng bằng

enter image description here

tại bất cứ nơi nào bạn muốn \ n có chỉ cần sử dụng Alt + Enter và bạn sẽ nhận được dòng mới

hy vọng nó hữu ích cho người đang sử dụng trình tạo giao diện để đạt được điều này

Các vấn đề liên quan