簡體   English   中英

Swift不能在自定義單元格中自動工作

[英]Swift Don't work auto heigh in custom cell

只是自定義類的單元格

class CarCell: UITableViewCell { 

override func layoutSubviews() {

    MainImageView.leftAnchor.constraint(equalTo: self.leftAnchor, constant: spacing * 5).isActive = true
    MainImageView.topAnchor.constraint(equalTo: self.topAnchor, constant: spacing).isActive = true
    MainImageView.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -spacing * 5 ).isActive = true
    MainImageView.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: -spacing).isActive = true
    MainImageView.heightAnchor.constraint(equalTo: MainImageView.widthAnchor).isActive = true

}

不工作2底線。

class TableViewController: UITableViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.register(CarCell.self, forCellReuseIdentifier: "CarCell")
    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.estimatedRowHeight = 44
}

在此處輸入圖片說明

我可以創建這個非程序化的東西,我需要這個結果

在此處輸入圖片說明

您需要在單元格中添加約束:

底部,頂部,左側,右側和高度(可以大於> =或小於<=)

同時為image view添加clipToBounds = true

在此處輸入圖片說明

嘗試以下代碼,我認為您缺少此代碼

class TableViewController: UITableViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.register(CarCell.self, forCellReuseIdentifier: "CarCell")
    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.estimatedRowHeight = 44
    tableView.delegate = self
    tableView.datasource = self
}

找到了解決方案!!! 當添加約束時需要:使用self.contentView

MainImageView.leftAnchor.constraint(equalTo: self.leftAnchor ,常數:間距* 5).isActive = true

只需更改為

MainImageView.leftAnchor.constraint(equalTo: self.contentView .leftAnchor ,常數:間距* 5).isActive = true

暫無
暫無

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

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