Я использую swift4
, у меня есть выход для просмотра таблицы и высоты просмотра таблицы:
@IBOutlet var commentsTableView: UITableView!
@IBOutlet var commentTableHeight: NSLayoutConstraint!
таблица возвращает динамическую высоту для каждой ячейки
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
Я хочу изменить высоту табличного представления при получении данных от API
:
//// Consum APIs
func getProductDetails() {
API.getProductDetails(category_id: String(self.passed_category_id)) {( error: Error?, success: Bool, products: ProductDetails) in
if success {
self.product = products
self.setProductDetailsValue()
} else {
}
}
}
func setProductDetailsValue() {
if(self.product.comments.count > 0) {
self.commentsTableView.isHidden = false
self.commentsTableView.reloadData()
self.commentsTableView.layoutIfNeeded()
self.commentTableHeight.constant = self.getTableViewHeight(tableView: self.commentsTableView)
print("comment table height: ", self.commentTableHeight.constant, self.getTableViewHeight(tableView: self.commentsTableView))
} else {
self.commentsTableView.isHidden = true
}
}
func getTableViewHeight(tableView: UITableView)-> CGFloat {
tableView.layoutIfNeeded()
return tableView.contentSize.height
}
оператор print печатает такие значения, как:
comment table height: 352.0 624.333324432373
, что означает, что self.commentTableHeight.constant
принимает другое значение. Я нахожу, что каждый раз, когда приложение дает 44 pt каждой ячейке, но я не знаю, в чем проблема с моим кодом.
любая помощь?