Я пытаюсь создать представление с горизонтальным стеком с двумя кнопками в первой строке и таблицей во второй.Эта таблица может увеличить ее высоту, и моя проблема в том, что когда высота таблицы слишком высока, кнопки перемещаются за пределы экрана сверху, и я не могу прокрутить таблицу до ее нижней части.Как я могу правильно установить ограничения, чтобы это произошло?когда высота стола слишком велика, он должен только создать прокрутку, а не перемещать другие компоненты.Не могли бы вы, ребята, помочь мне?
Здесь я обновляю высоту стола.
func updateTableHeight() {
UIView.animate(withDuration: 0, animations: {
self.tableView.layoutIfNeeded()
}) { (complete) in
self.heightOfTableViewConstraint?.constant = self.tableView.contentSize.height
}
}
Здесь я настраиваю все ограничения:
private func setUpViewConstraints() {
tableView.translatesAutoresizingMaskIntoConstraints = false
goToNextPageButton.translatesAutoresizingMaskIntoConstraints = false
goToPreviousPageButton.translatesAutoresizingMaskIntoConstraints = false
buttonsStackView.translatesAutoresizingMaskIntoConstraints = false
mainStackView.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor = .black
let viewsDictionary: [String: Any] = ["tableView": tableView,
"goToNextPageButton": goToNextPageButton,
"goToPreviousPageButton": goToPreviousPageButton,
"mainStackView": mainStackView,
"buttonsStackView": buttonsStackView]
let mainStackViewHorizontalConstraints =
NSLayoutConstraint.constraints(withVisualFormat: "H:|-40-[mainStackView]-40-|",
options: NSLayoutFormatOptions(rawValue: 0),
metrics: nil, views: viewsDictionary)
let mainStackViewVerticalConstraints =
NSLayoutConstraint.constraints(withVisualFormat: "V:[mainStackView]",
options: NSLayoutFormatOptions(rawValue: 0),
metrics: nil, views: viewsDictionary)
let buttonsStackViewVerticalConstraints =
NSLayoutConstraint.constraints(withVisualFormat: "V:|-20-[buttonsStackView]",
options: NSLayoutFormatOptions(rawValue: 0),
metrics: nil, views: viewsDictionary)
let buttonsStackViewHorizontalConstraints =
NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[buttonsStackView]-0-|",
options: NSLayoutFormatOptions(rawValue: 0),
metrics: nil, views: viewsDictionary)
let tableViewViewHorizontalConstraints =
NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[tableView]-0-|",
options: NSLayoutFormatOptions(rawValue: 0),
metrics: nil, views: viewsDictionary)
buttonsStackView.addConstraint(NSLayoutConstraint(item: goToPreviousPageButton,
attribute: .height,
relatedBy: .equal,
toItem: nil,
attribute: .height,
multiplier: 1,
constant: 80))
buttonsStackView.addConstraint(NSLayoutConstraint(item: goToNextPageButton,
attribute: .height,
relatedBy: .equal,
toItem: nil,
attribute: .height,
multiplier: 1,
constant: 80))
view.addConstraint(NSLayoutConstraint(item: mainStackView,
attribute: .top,
relatedBy: .equal,
toItem: view,
attribute: .top,
multiplier: 1,
constant: 40))
view.addConstraints(mainStackViewHorizontalConstraints)
view.addConstraints(mainStackViewVerticalConstraints)
view.addConstraints(buttonsStackViewHorizontalConstraints)
view.addConstraints(buttonsStackViewVerticalConstraints)
mainStackView.addConstraints(tableViewViewHorizontalConstraints)
}