簡體   English   中英

在UITableViewCell中使用動態高度更改UILabel文本長度不能正確調整其大小

[英]Changing UILabel text length in UITableViewCell with dynamic height does not resize it correctly

我有一個帶有UILabel的UITableViewCell,它可以根據文本長度正確調整其高度。 為此,我已經正確設置了AutoLayout約束並指定了

tableView.rowHeight = UITableViewAutomaticDimension

我遇到的問題是,在單元格本身中按下UIButton-READ MORE之后,UILabel的測試時間變長了。 我以編程方式將文本添加到UILabel,並且希望單元格高度會增加。 我已經添加了:

    self.layoutIfNeeded()
    self.updateConstraints()

在單元格中,但是它不起作用。 單元格保持相同的高度。

我還強制在委托UIViewController中重新加載單元格行,但它也不起作用。 我在這里缺少基本的東西嗎?

編輯:該問題不同於其他類似的問題,因為我希望答案避免必須手動計算高度。 由於AutoLayout完全能夠在首次加載時計算正確的動態高度,因此我認為應該有一種方法可以使標簽中的文本變長后重新繪制單元格,而無需執行手動計算來估算行高。

Get the Label height dynamically and set the tableviewcell height

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
   // Calculate the Label height and add it to default height of the cell
}

在更新我所調用的UILabel內容后,我找到了一個可行的解決方案:

 UIView.animateWithDuration(0.3) {
     cell.contentView.layoutIfNeeded()
 }

更新單元格約束。 然后調整單元格高度的大小:

 tableView.beginUpdates()
 tableView.endUpdates()

我將等待接受這個答案,看看是否有人會回答一個更優雅的解決方案。

暫無
暫無

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

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