Swift Не работает авто-высота в пользовательской ячейке - PullRequest
0 голосов
/ 06 сентября 2018

Просто пользовательский класс для ячейки

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
}

enter image description here

Я могу создать это не программно, и мне нужен этот результат

enter image description here

Ответы [ 3 ]

0 голосов
/ 06 сентября 2018

попробуйте следующий код, я думаю, вам не хватает этого

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
}
0 голосов
/ 21 октября 2018

нашел решение !!! при добавлении ограничений необходимо: использовать self.contentView

MainImageView.leftAnchor.constraint (equalTo: self.leftAnchor, константа: интервал * 5) .isActive = true

просто изменить на

MainImageView.leftAnchor.constraint (equalTo: self.contentView .leftAnchor, константа: интервал * 5) .isActive = true

0 голосов
/ 06 сентября 2018

Вам необходимо добавить ограничения в ячейку:

Снизу, сверху, слева, справа и высота (вы можете больше, чем> = или меньше, чем <=) </p>

Также добавьте clipToBounds = true для image view

enter image description here

...