簡體   English   中英

如何根據其內容更改單元格高度?

[英]How do I change cell height according to its content?

我有一個Detail View Controller,根據您在Main View Controller中按哪個單元格來選擇,它具有不同的文本長度。 如何根據其中的內容設置單元格的高度?

僅供參考,該單元格由3個標簽和1個圖像視圖組成。 垂直設置為UILabelUIImageViewUILabelUILabel

我正在使用Swift。

當我添加自動布局約束時,會發生以下情況:

做到這一點的方法是使用自動布局。 您需要從單元的頂部到底部設置垂直約束:

  1. 單元格的上邊緣與第一個標簽的上邊緣之間的距離。
  2. 從第一個標簽的底部邊緣到圖像視圖的頂部邊緣的距離。
  3. 從圖像視圖的底部邊緣到第二個標簽的頂部邊緣的距離。
  4. 等等 ...

自動布局將根據您放入標簽和圖像視圖中內容的大小來調整單元格的大小。

您還應該記住將表視圖上的estimatedRowHeight屬性設置為一些有意義的值。 這將有助於表格視圖將內容大小的某些計算推遲到用戶開始滾動時。

另外,將表視圖上的rowHeight屬性設置為UITableViewAutomaticDimension

您需要做四件事:

  1. 設置tableView:heightForRowAtIndexPath方法以返回UITableViewAutomaticDimension
  2. 設置tableView:estimatedHeightForRowAtIndexPath以返回單元格的平均高度。 您可以將其設置為靜態值,例如100。
  3. 設置“自動布局”約束,以使所有子視圖垂直相互綁定,並且最頂部和最底部的視圖都綁定到單元格的contentView
  4. 在代碼中或在故事板中將標簽的preferredMaxLayoutWidth屬性設置為等於標簽的寬度。

為了解決這個問題,我在標簽中添加了sizeToFit()屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM