Я пытаюсь, чтобы размер UITableViewCells автоматически изменялся в зависимости от содержимого ячейки;однако высота строки вообще не меняется, поэтому содержимое обрезается.
У меня есть UITableViewController с одной ячейкой-прототипом.В этом есть представление пользовательского интерфейса, прикрепленное с 0 верхними, нижними, ведущими и конечными ограничениями.К этому представлению я добавил ImageView с фиксированной шириной и высотой, центрированный по виду и с верхними ограничениями.Кроме того, есть центрированная метка с верхним и нижним ограничениями.Таким образом, ограничения должны быть в порядке.
Кроме того, я добавил
tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = 300
к viewDidLoad()
из TableViewController
.
Вместо получения ожидаемого результата
экран выглядит так:
ВотОграничения:
Есть идеи, что здесь происходит?
РЕДАКТИРОВАТЬ: только для целей тестирования, я теперь создал новую ячейку прототипаи только добавил к нему метку, закрепив ее ограничениями «ведущий», «конечный», «верхний и нижний» и установив для ее свойства lines
значение 0
, чтобы включить автоматическое изменение размера.Однако опять ничего не происходит, ярлык даже не оборачивает текст внутри него.
Смотрите здесь раскадровку, ограничения и фактический результат: https://imgur.com/a/Hq5frWp
Код моего TableViewController:
import UIKit
class FirstTableViewController: UITableViewController{
override func viewDidLoad() {
super.viewDidLoad()
tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = 300.0
}
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return 1
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellA = tableView.dequeueReusableCell(withIdentifier: "article", for: indexPath) as! ArticleTableViewCell
cellA.articleText.text = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus "
return cellA
}
}