2016-11-01 26 views
0

在我的表格視圖單元格中有3個對象;一個imageview,標籤和一個textview。Swift - 根據UITextView佈局約束的UITableViewCell高度

這是我怎麼設置我的TextView和它的約束:

textView.translatesAutoresizingMaskIntoConstraints = false 
textView.textColor = UIColor.blue 
textView.font = UIFont.systemFont(ofSize:15.0) 
textView.textAlignment = NSTextAlignment.left 
textView.isScrollEnabled = false 

**注意selfUIView包含TextView的。表視圖單元格的內容視圖會包含此UIView

self.addConstraints([ 
      textView.topAnchor.constraint(equalTo: label.bottomAnchor, constant: 10.0), 
      textView.leftAnchor.constraint(equalTo: imageView.rightAnchor, constant: 10.0), 
      textView.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -10.0), 
      textView.heightAnchor.constraint(greaterThanOrEqualToConstant: 20.0) 
      ]) 

我根據其內容

對於我的UITableView我這樣做isScrollEnabled = false使TextView的身高計算公式爲:

tableView.estimatedRowHeight = 44.0 
tableView.rowHeight = UITableViewAutomaticDimension 

隨着上面的代碼我的tableviewcell不顯示正確的高度。我相信它是因爲我的textview高度約束給tableviewcell內容視圖錯誤的高度。

我該如何解決這個問題?

+0

設置'isScrollEnabled = FALSE'不會影響計算的TextView的高度 – alexburtnik

+0

@alexburtnik這一點,heightAnchor確實根據其高度改變的TextView。對不起,如果我的解釋不清楚 – imstillalive

+0

@alexburtnik我能夠根據內容更改textView的高度,但仍然沒有運氣改變表格視圖單元格的高度 – imstillalive

回答

0
  1. 設置isScrollEnabled = false不會影響計算textView的高度。
  2. 爲了根據TextView的內容,你應該在另外添加底部(=)約束你textView頂部(=)可選高(> =)調整細胞。
0

您是否嘗試過使用tableView(heightForRowAt:)委託方法?

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return textView.frame.height // Assuming you have a reference to the textview 
} 
+0

@imstillalive大聲笑很好的不必要和完全錯誤的評論。 – Luis

相關問題