Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีเพิ่ม Line Break ให้ UILabel ใน iOS

Line Break ใน UILabel ควบคุมการแสดงข้อความหลายบรรทัด โดยค่าเริ่มต้น UILabel แสดง 1 บรรทัด และตัดทอนข้อความที่เกิน

วิธีที่ 1: Storyboard (Lines = 0)

  1. เลือก UILabel → Attribute Inspector
  2. หา Lines ตั้งค่าเป็น 0 (ค่าเริ่มต้นคือ 1)
  3. 0 = ไม่จำกัดจำนวนบรรทัด (Auto height)

วิธีที่ 2: โค้ด - ตั้ง numberOfLines = 0

override func viewDidLoad() {
    super.viewDidLoad()
    label.numberOfLines = 0
    // ต้องมี Constraints ที่กำหนดความกว้าง และ Top/Bottom ให้ชัดเจน
}

วิธีที่ 3: โค้ด - ใส่ \n ในข้อความ

override func viewDidLoad() {
    super.viewDidLoad()
    label.numberOfLines = 0
    label.text = "บรรทัดแรก\nบรรทัดที่สอง\nบรรทัดที่สาม"
}

Auto Layout สำคัญ

ต้องตั้ง Constraints ให้ถูกต้อง:

  • Leading, Trailing, Top (หรือ Center Y)
  • ไม่ต้องตั้ง Height Constraint (ถ้า numberOfLines = 0)
  • ตั้ง label.setContentCompressionResistancePriority(.required, for: .vertical) ป้องกันการบีบอัด

Line Break Mode

label.lineBreakMode = .byWordWrapping   // ขึ้นบรรทัดใหม่ที่คำ (default)
label.lineBreakMode = .byCharWrapping   // ขึ้นบรรทัดใหม่ที่ตัวอักษร
label.lineBreakMode = .byTruncatingTail // ตัดทอนท้ายด้วย ...
label.lineBreakMode = .byTruncatingHead // ตัดทอนหัวด้วย ...

Dynamic Height (TableView Cell)

tableView.estimatedRowHeight = 44
tableView.rowHeight = UITableView.automaticDimension
// Label ใน Cell ต้อง numberOfLines = 0 และมี Top/Bottom constraint