Высота табличного представления не полностью увеличивается согласно количеству ячеек - PullRequest
0 голосов
/ 06 июня 2019

У меня есть таблица в моем xib, вот так ...

enter image description here

Теперь я хочу увеличить высоту моего табличного представления в соответствии с количеством ячеек, добавляемых в табличное представление.

Чтобы добиться этого, я добавил этот код ..

In viewDidLoad ..

self.tableview.addObserver(self, forKeyPath: "contentSize", options: [], context: nil)

А потом добавил эту функцию ...

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

    var frame = self.tableview.frame
    frame.size = self.tableview.contentSize
    self.tableview.frame = frame
  }

Кроме того, у меня в таблице 5 ячеек.

Теперь, если я запускаю приложение, я получаю табличные ячейки примерно так ...

Верхняя часть: -

enter image description here* * 1030

И нижняя часть:

enter image description here

Здесь верхняя часть перекрывает часть содержимого метки выше, а последняя ячейка также не оставляет достаточно места в нижней части, и она обрезается ...

Как я могу это исправить ..?

РЕДАКТИРОВАТЬ 1: После назначения ограничения вида таблицы

enter image description here

1 Ответ

0 голосов
/ 06 июня 2019

Создайте outlet для tableView's height constraint.

@IBOutlet weak var tableHeightConstraint: NSLayoutConstraint!

Обновите его с помощью tableView's contentSize в observeValueForKeyPath:ofObject:change:context:

func updateTableiewConstraints() {
    let height = self.tableView.contentSize.height
    self.tableHeightConstraint.constant = height
}

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    self.updateTableiewConstraints()
}

Constraints для tableView:

enter image description here

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