[英]Vary table view cell height based on text
我有幾個單元格的表視圖。 填充單元格的文本是不可預測的(基於API請求的結果)。 我想做的是根據單元格的文本對於單元格來說是否太長來調整單元格的高度(例如,單元格在文本中添加“ ...”)。
這樣一來,無論結果/文本如何顯示在表格視圖單元格中,都將始終完整顯示。
我寧願不實現heightForRowAtIndexPath
因為我必須實現很多代碼。
更新:
當我說“我有很多代碼可以這樣做”時,我的意思是說我實際上有很多代碼可以解析請求,檢查條件並執行算法,此外,我還有很多表視圖。 只是將這些東西移到另一種方法上,我就出發了!
您能指出我要進行演示的任何資源嗎,您知道該怎么做嗎?
您必須實現heightForRowAtIndexPath來改變表行的高度,但是並不一定需要很多代碼來計算高度。
使用NSString:sizeWithFont:constrainedToSize來計算所需的像元大小。
//szMaxCell contains the width of your table cell, and the maximum height you want to allow
// strCellContents is an NSString containing the text to display
CGSize szMaxCell = CGSizeMake (tableView.frame.size.width - 20,999);
UIFont *font = [UIFont systemFontOfSize:12]; // whatever font you're using to display
CGSize szCell = [strCellContents sizeWithFont:font constrainedToSize:szMaxCell lineBreakMode:UILineBreakModeWordWrap];
szCell包含標簽的大小。 您將使用此大小來計算cellForRowAtIndexPath以及heightForRowAtIndexPath中的UILabel框架。
使用heightForRowAtIndexPath
。 它不應該有很多額外的代碼。 只需獲得一個用於填充單元格的對象的引用,檢查該文本值的長度並返回所需的高度即可。 這正是該委托方法的目的所在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.