У меня есть ViewController с Tableview, что с RowHeight набор свойств для UITableViewAutomaticDimension:клеток с stackview не расширяется, когда часть восстановления скрытого stackview
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
private var items: [String] = []
@IBOutlet weak var tableView: UITableView!
// MARK: - UITableViewDataSource, UITableViewDelegate
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell") as! CustomTableViewCell
cell.expandButton.setTitle(self.items[indexPath.row], for: .normal)
return cell
}
// MARK: - View cycle
override func viewDidLoad() {
super.viewDidLoad()
items = [
"Allen","Upton","Hu","Yuli","Tiger","Flynn","Lev","Kyle","Sylvester","Mohammad",
"Harlan","Julian","Sebastian","Porter","Preston","Palmer","Jakeem","Micah","Stephen","Tucker"
]
self.tableView.estimatedRowHeight = 150
self.tableView.rowHeight = UITableViewAutomaticDimension
}
}
Интерфейс определяется в IB следующим образом. У него есть пользовательская ячейка. Ячейка содержит стек. В верхней части этого stackview есть кнопка, а в нижней части - текстовое поле. Первоначально текстовое поле установлено на скрытое.
Нажатие кнопки отобразите текстовое поле. Клетка однако, не расширяется:
Ожидаемый является то, что клетка расширяется, чтобы показать всю stackview. Почему это не работает?
(я получил его на работу путем перезагрузки ячейки, но это некрасиво обходной путь, который требует код в ViewController.)
Проект Github: https://github.com/bvankuik/TestResizingCell
ли cell.layoutIfNeeded() означает, как решение? Где вы предлагаете мне поставить эту линию? –