2017-10-12 81 views
0

你好,我有一個UITableView x單元格。最後一個單元我有兩個UILabels。當設置第二個UILabel文本時,我試圖讓單元格和UILabel調整大小以顯示文本。自動增加/減少UITableViewCell中的UILabelView高度?

以下是我有:

的的UILabel - LabelBio(橙色)有:

線:0 基線:對準基線 線路中斷:自動換行 自動收縮:固定字體大小

enter image description here

ContentView,LabelSellerInfo和LabelBio的約束設置如下:

LabelSellerInfo enter image description here

LabelBio enter image description here

內容查看 enter image description here

隨着這裏的設置就是一個GET: enter image description here

我已經嘗試了許多變化,但似乎無法得到生物標籤會長大和縮小,有時如果我拿到標籤的話種植細胞仍然太小。

任何人都可以幫助我瞭解我做錯了什麼,並告訴我如何得到正確的約束,讓這個工作?

謝謝

+0

如果您希望標籤根據內容調整高度,請提供以下限制: - 高度關係大於或等於的前導,尾隨,頂部和高度+標籤的線數= 0。 –

+1

你在設置'.rowHeight = UITableViewAutomaticDimension'嗎? – DonMag

+0

所以我對LabelBioView有4個約束。 1)拖後空間到超視圖,2)領先空間到超視圖,3)頂部空間到:LabelSellerInfo,4)高度> = 90.但它不工作,我有他們錯了嗎?哦,一個區別是,我定義的方法heightForRowAt並返回UITableViewAutomaticDimension – LilMoke

回答

0
  1. 設置tableView.rowHeight = UITableViewAutomaticDimension
  2. 在你的代碼FUNC的tableView刪除此功能(_的tableView:UITableView的,heightForRowAt indexPath:IndexPath) - > CGFloat的
  3. 的設置高度約束LabelBio greaterOrEqualThan 0
+0

因此,我添加了像Tushar建議的三個約束,但它沒有工作,所以我刪除了函數heightForRowAt並將高度約束更改爲> = 0,但它仍然沒有工作的權利。 – LilMoke

0

這裏的步驟...

  • 希望你瞭解一下autylayout。使用約束(left to content viewright to content viewbottom to content viewverticle to your first label

  • 然後在viewdidLoad方法添加YourTableView.estimatedRowHeight = 200 - >給你想要的任何高度。

  • 最終定義如下方法:

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

你去好。

+0

我認爲這是我的約束 – LilMoke