Swift中動態改變TableView單元格高度
要在iOS中動態更改tableView單元格的高度,即根據可用內容調整單元格大小,我們需要使用自動尺寸屬性。我們將透過一個示例專案來說明這一點。
建立一個空專案,並轉到其viewController類,使其符合UITableViewDataSource和UITableViewDelegate。
現在,在下面的程式碼中,我們將首先建立一個表格,然後為該表格註冊一個單元格,並新增一些表格屬性。
我們將設定表格檢視委託和表格檢視資料來源。
最後,我們將表格檢視新增到檢視中。然後,我們將在檢視控制器的viewDidLoad方法中呼叫此函式。
注意:我們設定了一個名為estimatedRowHeight的屬性
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預設情況下有一個label屬性,並且label預設只有一行長度,因此我們需要更改它才能看到自動尺寸的效果。
現在我們需要告訴表格它的單元格應該有多高。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
執行上面的程式碼,我們將得到以下結果。

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP