UILabel - ข้อความ Wordwrap


150

มีวิธีใดที่จะมีข้อความ wordwrap ของป้ายกำกับตามต้องการหรือไม่ ฉันมีตัวแบ่งบรรทัดถูกตั้งค่าเป็น word wrap และเลเบลสูงพอสำหรับสองบรรทัด แต่ปรากฏว่ามันจะตัดกับตัวแบ่งบรรทัดเท่านั้น ฉันต้องเพิ่มตัวแบ่งบรรทัดเพื่อให้การห่อถูกต้องหรือไม่? ฉันแค่อยากให้มันห่อถ้ามันไม่พอดีในแนวนอน

คำตอบ:


301

หากคุณตั้งค่าnumberOfLinesเป็น 0 (และฉลากเป็น word wrap) ฉลากจะตัดและใช้บรรทัดมากเท่าที่ต้องการโดยอัตโนมัติ

หากคุณกำลังแก้ไข a UILabelใน IB คุณสามารถป้อนข้อความหลายบรรทัดโดยกดoption+ return เพื่อให้ได้ตัวแบ่งบรรทัด - returnเพียงอย่างเดียวจะสิ้นสุดการแก้ไข


124
เพื่อชี้แจงสำหรับ noobs เช่นตัวเองนี้จะเป็น: cell.textLabel.numberOfLines = 0; cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
Brian Moeskau

46
ใน iOS 6 และต่อมาก็ใช้ไม่ได้NSLineBreakByWordWrapping UILineBreakModeWordWrap
Aaron Brager

3
คุณอาจต้องการสิ่งต่อไปนี้: label.autoresizingMask = UIViewAutoresizingFlexibleHeight;
William Grand

6
label.lineBreakMode = .ByWordWrappingและ label.numberOfLines = 0รวดเร็ว
AFraser

9
สำหรับทุกคนที่สิ่งนี้ไม่ชัดเจน (เช่นฉัน): UILabel จะต้องมีข้อ จำกัด บางอย่างเกี่ยวกับความกว้างของมัน (จากข้อ จำกัด ความกว้างจริงหรือข้อ จำกัด ระยะขอบ) มิฉะนั้นมันจะไม่ห่อ
jcady

27

UILabelมีคุณสมบัติlineBreakModeที่คุณสามารถตั้งค่าตามความต้องการของคุณ


11
"ฉันได้ตั้งค่าตัวแบ่งบรรทัดเป็นการตัดคำ" การทำเช่นนี้จะครอบคลุมเฉพาะการขึ้นบรรทัดใหม่เท่านั้นมันจะไม่หยุดโดยอัตโนมัติเมื่อมันยาว
Codezy

19

ใน Swift คุณจะทำเช่นนี้:

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

(โปรดทราบว่าวิธีการทำงานของ lineBreakMode คงแตกต่างจากใน ObjC)


สนใจที่จะอธิบายอย่างละเอียดว่ามันแตกต่างกันอย่างไร
Mike

ฉันคิดว่าฉันหมายถึงว่าการตั้งชื่อนั้นแตกต่างกัน มันอาจมีการเปลี่ยนแปลงอีกครั้งใน swift3
นาธา

โหมดแบ่งบรรทัดควรตั้งค่าเป็นการตัดคำเป็นค่าเริ่มต้น
MobileMon

@MobileMonin ประสบการณ์ของฉันที่ไม่ได้เป็นอย่างนั้นเสมอ บางที IB อาจเปลี่ยนแปลงได้ในบางสถานการณ์?
นาธาน

label.lineBreakMode = NSLineBreakByWordWrapping ใน Obj C
Nupur Sharma

2

Xcode 10, Swift 4

การตัดข้อความสำหรับป้ายกำกับสามารถทำได้บนกระดานเรื่องราวโดยการเลือกป้ายกำกับและใช้ตัวตรวจสอบแอตทริบิวต์

Lines = 0 Linebreak = การตัดคำ

ป้อนคำอธิบายรูปภาพที่นี่


2
การใช้ป้ายกำกับ branBrand- ใหม่เพิ่มไปยังมุมมองโดยตรงซึ่งยังคงสร้างป้ายกำกับบรรทัดเดียว (ที่มีความกว้างใหญ่กว่าความกว้างของโทรศัพท์) สำหรับฉันแม้ว่าจะตั้งค่าเป็น 0 และการเรียงบรรทัดกับ Word Wrap มีการตั้งค่าอื่นที่อาจต้องการหรือไม่ ฉันต้องแนบรหัสเพิ่มเติมหรือไม่
Phihag
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.