UILabel - văn bản Wordwrap


150

Có cách nào để có một văn bản wordwrap nhãn khi cần thiết? Tôi có các ngắt dòng được đặt thành bao bọc từ và nhãn đủ cao cho hai dòng, nhưng có vẻ như nó sẽ chỉ ngắt trên các ngắt dòng. Tôi có phải thêm ngắt dòng để làm cho nó được bọc đúng không? Tôi chỉ muốn nó được bọc nếu nó không thể vừa với nó theo chiều ngang.

Câu trả lời:


301

Nếu bạn đặt numberOfLinesthành 0 (và nhãn thành bao bọc từ), nhãn sẽ tự động bọc và sử dụng bao nhiêu dòng nếu cần.

Nếu bạn đang chỉnh sửa UILabelIB, bạn có thể nhập nhiều dòng văn bản bằng cách nhấn option+ return để ngắt dòng - returnmột mình sẽ hoàn thành chỉnh sửa.


124
Để làm rõ cho những người mới như tôi, đây sẽ là: cell.textLabel.numberOfLines = 0; cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
Brian Moeskau

46
Trong iOS 6 trở lên, sử dụng NSLineBreakByWordWrapping, không UILineBreakModeWordWrap.
Aaron Brager

3
Bạn cũng có thể cần những thứ sau: nhãn.autoresizingMask = UIViewAutoresizingFlexibleHeight;
William Grand

6
label.lineBreakMode = .ByWordWrappinglabel.numberOfLines = 0nhanh chóng
AFraser

9
Đối với bất kỳ ai không rõ ràng (như tôi): UILabel phải có một số giới hạn về chiều rộng của nó (từ ràng buộc về chiều rộng thực tế hoặc ràng buộc lề); nếu không nó sẽ không bao bọc.
jcady

27

UILabelcó một tài sản lineBreakModemà bạn có thể đặt theo yêu cầu của bạn.


11
"Tôi có ngắt dòng được đặt thành gói từ". Điều này chỉ kết thúc khi ngắt dòng thực tế, nó sẽ không tự động ngắt khi nó còn dài.
Codezy

19

Trong Swift bạn sẽ làm như thế này:

    label.lineBreakMode = NSLineBreakMode.ByWordWrapping
    label.numberOfLines = 0

(Lưu ý rằng cách hoạt động của hằng số lineBreakMode khác với ObjC)


Quan tâm đến việc xây dựng nó khác nhau như thế nào?
Mike

Tôi nghĩ rằng tôi chỉ có nghĩa là việc đặt tên là khác nhau. Nó có thể đã thay đổi một lần nữa trong swift3
Nathan

Chế độ ngắt dòng nên được đặt thành gói từ mặc định
MobileMon

@MobileMonin kinh nghiệm của tôi không phải lúc nào cũng như vậy. Có lẽ IB thay đổi nó trong một số trường hợp?
Nathan

nhãn.lineBreakMode = NSLineBreakByWordWrapping trong Obj C
Nupur Sharma

2

Xcode 10, Swift 4

Việc gói Văn bản cho nhãn cũng có thể được thực hiện trên Bảng phân cảnh bằng cách chọn Nhãn và sử dụng Trình theo dõi thuộc tính.

Dòng = 0 Linebreak = Word Wrap

nhập mô tả hình ảnh ở đây


2
Sử dụng nhãn branBrand-New, trực tiếp thêm nhãn vào chế độ xem, điều này vẫn tạo nhãn đơn dòng (có chiều rộng lớn hơn chiều rộng của điện thoại) đối với tôi, mặc dù đặt các dòng thành 0 và ngắt dòng thành Word Wrap. Có một thiết lập khác có thể cần thiết? Tôi có cần đính kèm mã không?
phihag
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.