如何佈置UITableViewCell可能有或沒有使用Autolayout的圖像?
如圖所示,單元格可能有也可能沒有圖像,圖像的數量是多種多樣的。它還具有變體高度的文本內容。 (單元格全部在同一個桌面視圖中。)
無論有沒有圖像,文本高度(行數)都是變體。
如何使用AutoLayout來佈置這種類型的單元格? 在此先感謝。
如何佈置UITableViewCell可能有或沒有使用Autolayout的圖像?
如圖所示,單元格可能有也可能沒有圖像,圖像的數量是多種多樣的。它還具有變體高度的文本內容。 (單元格全部在同一個桌面視圖中。)
無論有沒有圖像,文本高度(行數)都是變體。
如何使用AutoLayout來佈置這種類型的單元格? 在此先感謝。
垂直/水平間距約束的組合可以達到您想要的效果。要獲得不同的文本高度,可以將屬性檢查器中的lines
屬性設置爲0
。文本將自動創建第二行,而垂直佈局約束將推動綁定到UILabel
的任何內容。
然而,您將需要適應某些情況下的細胞高度......但這是另一回事。
我會使用numberOfLines = 0的UILabel(myLabel)和容器UIView(myImageContainerView)來容納圖像。 myLabel和myImageContainerView都會根據其內容定義自己的高度。如果沒有圖像,containerImageView將是高度零。然後,您只需在這些視圖之間設置約束。
這裏試圖表示這個ASCII圖: The | (管道符號表示垂直間隔限制) 的< - >表示一個水平間隔限制
----------------------------
|
<-> myLabel <->
|
<-> myImageContainerView <->
|
-----------------------------
最後,你需要一個動態的高度的UITableViewCell,你可以通過在你的tableView設置此實現:
myTableView.rowHeight = UITableViewAutomaticDimension;
所以當沒有圖像時,顯示第二行文字? –
@KelvinLau不,文本高度也是變體。感謝您對這個問題感興趣。 – Evan
您可以設置約束(頂部空間,底部空間,中心X,前導空間,尾部空間) – anhtu