簡體   English   中英

uitableviewcell中的自動布局問題

[英]Problems with autolayout in uitableviewcell

與往常一樣,我遇到了一些困難,無法正確解決約束條件。 這是我的表視圖的工作方式:

這是默認顯示。 單元格的高度是57。 在此處輸入圖片說明 當您單擊一個單元格時,我將所選單元格的高度更改為90,因此它將顯示以下信息: 在此處輸入圖片說明

我的問題是設置約束,使其看起來與在兩個圖像中都一樣。 最好的解決方案是什么?

如果我創建了兩個視圖並將它們放置在uitableview內會更容易,那么將為特定視圖設置約束,而不是在用戶單擊等時更改單元格的框架。我上傳了我的項目,如果有人想要更好的概述發生了什么:

https://ufile.io/u2y5p

您還可以將信息放入UIStackView ,直到單擊該單元格為止,它們才不可見,使用UITableViewAutomaticDimension可以使單元格的高度動態化,因此,當您使這些信息可見時,重新加載UITableView可以使單元格的高度更高

假設您要在模型模型的TableView上顯示數據。 在模型類中保留一個名為“ isExpanded”的屬性,並默認將其值設置為false。

現在,使用以下代碼:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    let dataModel = self.arrayOfModels[indexPath.row]
    return dataModel.isExpanded ? 100 : 50
}

在選擇一行:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let dataModel = self.arrayOfModels[indexPath.row]
    dataModel.isExpanded = true
    self.tableView.reloadRows(at: [indexPath], with: .automatic)
}

如果您有任何疑問或需要進一步澄清,請告訴我。

暫無
暫無

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

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