2014-03-04 40 views
1

我在UITableView中使用自定義單元格。在單元格中有4個視圖。 3 UILabel s和1 UIImageView(灰色一個),如下所示。標籤文本是動態的,因此寬度和高度是動態的。指定視圖大小取決於多個子視圖的約束條件

enter image description here

這裏的UIImageView寬度取決於2組的標籤。所以問題是要指定標籤和UIImageView之間的約束,這將決定寬度UIImageView

看下面如果第一個標籤的文字很長,會發生什麼。

enter image description here

當寬度取決於多個標籤的寬度如何指定的約束?

更新:我試着將標籤的行數設置爲0,並將固有尺寸設置爲佔位符。它也不工作。下面是它的外觀。我嘗試將內部寬度和高度設置爲none,但是當我爲兩個標籤設置內容時發生錯誤,如果僅爲一個標籤設置,則不會發生錯誤。

enter image description here

enter image description here

enter image description here

更新:我改變性質和下面所顯示的內容現在他們是如何顯示的單元格。

細胞:

enter image description here

約束的標籤在第一行(粉紅色):

enter image description here

約束的在第二行標籤(青色着色) :

enter image description here

+0

您是否在IB或代碼中設置約束條件? –

+0

如果在IB中,您需要將標籤的行數設置爲0,並在Size Inspector中將佔位符的內部大小設置爲0。這樣,標籤的大小和行數將在運行時根據內容進行計算。 –

+0

而且很明顯遵循這篇文章http://stackoverflow.com/questions/18746929/using-auto-layout-in-uitableview-for-dynamic-cell-layouts-variable-row-heights。但我已經看到你了。 –

回答

2

我在嘗試了很多東西之後解決了這個問題。我唯一要做的就是將水平和垂直內容壓縮電阻的優先級設置爲要求的.i.e。 1000. 我爲所有標籤做了這個,因爲我不希望任何標籤修剪它們的內容。

還有一件太重要的事情是正確的單元格高度。如果在計算自定義單元格的高度時有1pt的錯誤,它將不會按預期顯示。

提示:

  1. 如果有任何視圖的高度大於預期的可能,然後計算出細胞的高度比實際需要更大。
  2. 如果任何視圖垂直縮小或不顯示整個內容,則可能計算的單元高度小於實際需要的高度。

Yoy可以通過向單元格的高度(變量)添加/刪除常量值來測試高度是否有誤。

相關問題