2017-03-03 161 views
0

晚上研究員,我得到了這個問題:Swift:自動調整單元格內的高度UITextView

我有一個TableView的單元格。在單元格內有幾個嵌套到許多堆棧視圖中的元素,如圖中所示。

其中一個元素是TextView,女巫的約束爲height = 150,所以我一定要顯示所有300個字符,我將其設置爲textView的限制。

但如果我只有幾個字符,我想爲textView有不同的高度,有沒有一種方法來自動調整它?

另一個問題是我不得不設置TableView的row height = 220,所以我很確定我也需要自動調整它。

任何提示?謝謝您 enter image description here

回答

3

您可以使用自動佈局來實現具有動態高度的自動調整表格視圖單元格。

首先,請允許表視圖使用自動佈局約束和單元格的內容來確定每個單元格的高度,通過設置如下:

tableView.rowHeight = UITableViewAutomaticDimension 
tableView.estimatedRowHeight = 100 // Something close to your average cell height 

接下來,進入你的故事板,並確保滾動已停用您的文字視圖。這是一個重要的設置,可以告訴textview根據其內容相應地調整自己的大小。

由於您希望它動態增長,所以省去了textview的高度限制。

最後,確保您已將textview的頂部固定到頂部標籤的底部,並將textview的底部固定到底部標籤的頂部。這些標籤本身應該分別固定在單元格的頂部和底部,以便單元格可以從頂部到底部確定其總高度。

您可能還需要調整垂直壓縮阻力和textview的垂直擁抱優先級,爲Auto Layout提供一個提示,指示應優先考慮哪個視圖進行壓縮或展開以填充單元格空間(自動佈局應該在故事板上對此進行警告)。