В моем приложении три UIViews
с UILabel
и UITableView
, отображающими пользователей.Когда нет пользователей, я хочу полностью скрыть вид.В настоящее время я пытаюсь установить представления heightAnchor на ноль, но это приводит к этой ошибке:
Невозможно одновременно удовлетворить ограничения.
"NSLayoutConstraint: 0x604000286cc0 LebensfitFirebase.SurePeople: 0x7ff0305d5d30.height == 300 (active)> ",
" NSLayoutConstraint: 0x60c000095b30 LebensfitFirebase.SurePeople: 0x7ff0305d5d30.height == 0 (active)> "
Будет предпринята попытка восстановления путем нарушения ограничения
NSLayoutConstraint: 0x604000286cc0 LebensfitFirebase.SurePeople: 0x7ff0305d5d30.height == 300 (активный)>
Что я должен касаться, чтобы эта работа?Кстати, я установил translatesAutoresizingMaskIntoConstraints
в ложь.Сначала я установил три вида следующим образом:
surePeopleTV.anchor(top: descLabel.bottomAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
maybePeopleTV.anchor(top: surePeopleTV.bottomAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
nopePeopleTV.anchor(top: maybePeopleTV.bottomAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
Это пользовательский метод для установки ограничений в одну строку.Константа высоты не устанавливается в 0 с помощью этого метода.
Затем в моей программе меня волнует ограничение высоты при обновлении пользователей в табличных представлениях:
func teilnehmerLoaded() {
if surePeopleTV.finishedLoading == true && maybePeopleTV.finishedLoading == true && nopePeopleTV.finishedLoading == true {
view.setNeedsUpdateConstraints()
for controller in tableViewControllers {
if controller.users.count > 0 {
let height: CGFloat = 300
controller.heightAnchor.constraint(equalToConstant: height).isActive = true
controller.confBounds()
} else {
controller.heightAnchor.constraint(equalToConstant: 0).isActive = true
}
}
}
}