UITableViewCell высота автоматического макета не работает на iOS 10 - PullRequest
0 голосов
/ 24 мая 2018

У меня есть очень простое UITableViewController, где я хочу установить текст для каждого textLabel из UITableViewCell с.

Высота должна быть рассчитана с помощью autolayout.Поэтому в моем viewDidLoad установите следующие значения для свойств tableView:

tableView.estimatedRowHeight = UITableViewAutomaticDimension
tableView.rowHeight = UITableViewAutomaticDimension

Это мой метод cellForRow, в котором я инициализирую UITableViewCell по умолчанию и устанавливаю текст для его метки.

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell()
        cell.textLabel?.numberOfLines = 0
        cell.textLabel?.text = "hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello"
        return cell
    }

Моя проблема в том, что ячейка не будет расти в соответствии с размером метки.Эта проблема появляется только на iOS 10. На iOS 11 все выложено так, как должно.

Пожалуйста, проверьте следующие снимки экрана:

  • iOS 10

enter image description here

  • iOS 11

enter image description here

РЕДАКТИРОВАТЬ: 24 мая 2018

Имея только textLabel, оно будет работать, если есть действительное значение для estimatedRowHeight.

Но при наличии ячейки со стилем .subtitle и установке значения descriptionLabel макет не будет работать.Та же проблема: iOS 10 не работает.iOS 11 работает (размеры ячеек соответствуют обоим меткам).

1 Ответ

0 голосов
/ 24 мая 2018

Эта конфигурация от вашего viewDidLoad:

tableView.estimatedRowHeight = UITableViewAutomaticDimension
tableView.rowHeight = UITableViewAutomaticDimension

... работает только на iOS 11. Это новинка для iOS 11 и не применяется к более ранним системам.

ДляiOS 10, вы должны указать фактическое значение estimatedRowHeight (например, 60), чтобы включить автоматический расчет переменной высоты строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...