У меня есть раскадровка, которая имеет простую иерархию представлений:
- View (has top/bottom constraints relative to safeArea >= 30, centerY)
- Label (has height/top(SuperView)/bottom(TextField) constraints)
- TextField (has height/top(Label)/bottom(TableView) constraints)
- TableView (has height >= 0, top(TextField)/bottom(Superview) constraints)
Внутри UITableViewDelegate (cellForRowAt):
tableView.setNeedsLayout()
tableView.layoutIfNeeded()
Поведение, которое я хочу достичь, - иметь TableView.и родительский вид растет по мере добавления к нему новых записей.Однако родительское представление не должно превышать своих верхних / нижних ограничений относительно безопасной области.
Все элементы имеют ограничения по высоте и явно заданные интервалы, кроме табличного представления (которое имеет высоту> = 0).Кроме того, приоритет просмотра содержимого представления родительского элемента равен 250, а сопротивление сжатию табличного представления равно 750. Я думал, что фиксация ограничений высоты и расстояния между элементами позволит табличному виду расти до некоторой точки, поскольку сопротивление сжатию содержимого выше для верхнего уровня./ Нижняя безопасная область, чем для TableView.
Однако XCode заставляет меня установить высоту или ограничение позиции Y для родительского представления.Я не могу этого сделать, потому что тогда представление не может расти автоматически.
Я бы предпочел придерживаться AutoLayout и задаться вопросом, есть ли у кого-нибудь идея или ресурс о том, как это сделать.