2017-02-25 149 views
1

我想設置動態基於詳細文本標籤設置的內容行的高度,通過使用部分A.下面的代碼的iOS斯威夫特動態調整的tableview單元格的高度根據內容 -

我將幾行文本插入到單元格的詳細文本標籤中,如下面的B部分所示:

我已經查看了其他類似的問題,但都沒有幫助。

有人可以請教我如何根據詳細文本標籤的內容動態調整行高度。

A部分

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

也試過

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
     return UITableViewAutomaticDimension 
    } 

B部分

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "daysIdentifier", for: indexPath) 

     cell.textLabel?.text = days[indexPath.row] 

     cell.detailTextLabel?.numberOfLines = 0 

     var joinedString   = self.availabilityTimeDict[dayName]?.joined(separator: " \n ") 
     cell.detailTextLabel?.text = joinedString 
     return cell 
    } 

enter image description here

+2

設置標籤的頂部和底部限制正確,也設置tableView.estimateRowHeight = 50 –

回答

8

使用自定義單元格和標籤。 設置UILabel的約束。 (頂部,左邊,底部,右) 所述的UILabel的集線爲0

添加以下代碼中的ViewController的viewDidLoad方法:

tableView.estimatedRowHeight = 68.0 
tableView.rowHeight = UITableViewAutomaticDimension 

//代表&數據源

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension; 
} 

夫特4:

//代表&數據源

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 
2

給予頂部,底部,開頭和結尾下面表視圖

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

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat 
{ 
return 100 
} 
0
  • 首先建立一個自定義單元格的方法tableview.Use您拉布勒裏面的內容,並添加一個標籤並將其行數設置爲零,並給單元格的內容視圖(不給高度)的底部,頂部,引導,尾部約束也給單元的大小檢查器自定義高度,然後在viewDidLoad你只需要做,

tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 100.0

相關問題