Nhãn multiline iOS trong Trình tạo giao diện


131

Làm cách nào tôi có thể tạo một multiline UILabeltrong trình tạo giao diện cho iOS? Tôi đã thử UITextViewnhưng nó không phù hợp với nhu cầu của tôi.

Làm thế nào tôi có thể thêm multiline (văn bản) trong nhãn?


Bạn có thể giải thích tại sao id không đáp ứng nhu cầu của bạn không? TextView với chỉ đọc giống như nhãn multiline.
Shreesh

Có vẻ như không được tô sáng thuộc tính màu văn bản.
Samuli Lehtonen

7
Đối với những người khác truy cập câu hỏi này, không tuân theo câu trả lời được chấp nhận của việc đặt dòng thành 5 hoặc n. Thay vào đó, đặt thành 0 (Sắp xếp vô cực). Kiểm tra câu trả lời của vijay dưới đây.
GoodSp33d

Câu trả lời:


178

Bạn có thể sử dụng thuộc numberOfLinestính xác định số lượng dòng tối đa mà nhãn có thể có. Theo mặc định, đó là 1. Đặt nó thành 0có nghĩa là nhãn sẽ có dòng không giới hạn .

Bạn có thể làm điều đó trong mã:

textLabel.numberOfLines = 5 // for example

Hoặc trong Trình tạo giao diện:


Tôi đã thử, nó hoạt động khi tôi viết nhãn, nhưng khi tôi nhấn enter để chấp nhận thì tất cả chỉ diễn ra trên một dòng.
Samuli Lehtonen

3
widthnhãn hiệu của bạn là gì?
akashivskyy

8
Ok, tôi đã nhận nó ngay bây giờ, tăng chiều cao, điều đó làm cho nó. Cảm ơn!
Samuli Lehtonen

Bạn có thể đặt Dòng thành 0 cho các dòng không giới hạn.
paulmelnikow

2
Xem thêm câu trả lời này giải thích cách nhập nhãn nhiều dòng vào IB: stackoverflow.com/a/992511/893113
paulmelnikow

117

Nhấn Control+ Enterđể thêm một dòng trong UILabel trong Interface Builder / Storyboard.


2
Cảm ơn, đó là những gì tôi đã cố gắng làm :)
mcont

Đây nên là giải pháp!
SunnySonic

14
Đẹp một. Nhưng tôi đoán là "Q" không cần thiết
Rendel

1
@Oliver Logic nó không thoát Xcode ... Bạn chưa đọc chính xác. Ông nói KIỂM SOÁT + Q + ENTER (chứ không phải CMD + Q) .. Nhưng Rendel chỉ đúng KIỂM SOÁT + ENTER ở đây.
gaskbr

1
@Logic nó không thoát Xcode ... Bạn chưa đọc chính xác. Ông nói KIỂM SOÁT + Q + ENTER (chứ không phải CMD + Q) .. Nhưng Rendel chỉ đúng KIỂM SOÁT + ENTER ở đây.
gaskbr

47

Cảm ơn AppleVijay!

Cũng để gọi sizeToFit, như thế này:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

Chiều cao sẽ được tự động tính toán.


11
Lưu ý: UILineBreakModeWordWrap không được dùng nữa kể từ iOS6. Sử dụng [nhãn setLineBreakMode: NSLineBreakWordWrapping]; thay thế.
John Feagans

5
Thiếu "Bằng". nhãn.lineBreakMode = NSLineBreakByWordWrapping
user1872384

1
sử dụng NSLineBreakMode.ByWordWrapping thay vì UILineBreakModeWordWrap cho swift
Deb

12

Đặt chiều rộng của nhãn là u cần nhỏ, sau đó sử dụng IB để đặt ngắt dòng thành ngắt từ

hoặc sử dụng với mã như thế này

Tôi tìm thấy một giải pháp.

Người ta chỉ cần thêm mã sau đây:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

5

Đặt số dòng bằng 0 cho thông tin văn bản động, nó sẽ hữu ích khi văn bản của bạn thay đổi.

Lập trình (Swift 3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

Sử dụng Trình tạo Inetrface

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

Lưu ý: Không bắt buộc phải đặt Minimum Font Scale, nhưng thật tuyệt khi có hệ số tỷ lệ tối thiểu để khớp văn bản vào khung nhãn.


2

Số dòng có thể nhìn thấy trong IB với trường UILabels đơn giản đặt trường dòng là 0. Nó sẽ tạo ra nhiều dòng theo không gian được cung cấp cho nhãn.


1

Trong iOS7 (Xcode5), bạn sẽ đặt các dòng UILabel thành 0nhiều đầu vào không giới hạn trong bảng phân cảnh.
Điều quan trọng nhất là đặt height of the UILabelcó thể giữ các dòng đầu vào bạn sẽ đặt.


0
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};

0

Nếu bạn đặt thuộc tính numberOfLines bằng 0, nhãn sẽ tự động điều chỉnh theo số dòng yêu cầu của văn bản đã cho.


0

Tôi đã vật lộn với điều này trong một thời gian dài. Tôi chỉ muốn văn bản nhãn của tôi xuất hiện trên dòng thứ hai. Nhưng bất cứ điều gì tôi làm, nó sẽ chỉ tràn vào hộp UILabel. Đối với tôi, thay đổi tự động kích thước thanh tra làm việc. Cách khắc phục đơn giản.

Có thể ai đó có thể thấy nó hữu ích, người đang tìm kiếm một cái gì đó tương tự.


-2

Đối với mã X 7.2

  1. - Chọn nhãn

  2. - Thuộc tính thanh tra

  3. - Văn bản - Chọn Thuộc tính

Sau này, bạn có thể thấy một số thuộc tính khác mà bạn có thể thêm vào nhãn của mình, trong đó bạn cũng có thể tìm thấy số lượng Dòng . Mà làm cho nhãn của bạn multiline .

Hình ảnh mã X cho một UILabel đa dòng


Số dòng có thể nhìn thấy trong IB với Plain UILabels.
Graham Lea
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.