Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

เปลี่ยนความสูงของ TableView Cell ใน Swift . แบบไดนามิก


ในการเปลี่ยนความสูงของเซลล์ tableView ใน iOS แบบไดนามิก เช่น การปรับขนาดเซลล์ตามเนื้อหาที่มี เราจำเป็นต้องใช้คุณสมบัติมิติอัตโนมัติ เราจะเห็นสิ่งนี้ด้วยความช่วยเหลือของโครงการตัวอย่าง

สร้างโปรเจ็กต์เปล่าและไปที่คลาส viewController สอดคล้องกับ UITableViewDataSource และ UITableViewDelegate

ในโค้ดด้านล่าง เราจะสร้างตารางก่อน จากนั้นจึงลงทะเบียนเซลล์สำหรับตารางนั้น และเพิ่มคุณสมบัติของตาราง

เราจะตั้งค่าผู้รับมอบสิทธิ์มุมมองตารางและแหล่งข้อมูลมุมมองตาราง

สุดท้ายเราจะเพิ่มมุมมองตารางเพื่อดู จากนั้นเราจะเรียกฟังก์ชันนี้ภายในเมธอด viewDidLoad ของตัวควบคุมการดู

หมายเหตุ: เราได้ตั้งค่าคุณสมบัติที่เรียกว่าประมาณRowHeight

func initTableView() {
   let tableView = UITableView()
   tableView.frame = self.view.frame
   tableView.dataSource = self
   tableView.delegate = self
   tableView.backgroundColor = colorLiteral(red: 0.6000000238, green: 0.6000000238, blue: 0.6000000238, alpha: 1)
   tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
   tableView.estimatedRowHeight = UITableView.automaticDimension
   self.view.addSubview(tableView)
}

ตอนนี้ โค้ดนี้จะเพิ่มตารางในมุมมองของเรา เรายังต้องบอกตารางว่าเราต้องการส่วนและแถวจำนวนเท่าใดในโค้ดของเรา

func numberOfSections(in tableView: UITableView) -> Int {
   return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
   return 5
}
func numberOfSections(in tableView: UITableView) -> Int {
   return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
   return 5
}

รหัสนี้จะสร้างข้อความบรรทัดใหญ่ในแถวที่สองในมุมมองตารางของเรา เพื่อให้ได้ความสูงตามขนาดเนื้อหา

หมายเหตุ: UITableViewCell มีคุณสมบัติป้ายชื่อโดยค่าเริ่มต้น และป้ายชื่อมีความยาว 1 บรรทัดตามค่าเริ่มต้น ดังนั้นเราจึงจำเป็นต้องเปลี่ยนสิ่งนั้นเพื่อดูการทำงานของมิติอัตโนมัติ

ตอนนี้เราต้องบอกตารางว่าเซลล์ควรมีความสูงเท่าใด

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
   return UITableView.automaticDimension
}

เมื่อเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้

เปลี่ยนความสูงของ TableView Cell ใน Swift . แบบไดนามิก