Я использовал snapKit для DispatchQueue.main.async , чтобы установить ограничения программно. Но я заметил, что main.async иногда вызывает зависание пользовательского интерфейса, и я меняю метод, чтобы использовать его. Теперь у меня есть проблема с использованием динамической высоты, старый метод вызывает ошибку, когда я пытаюсь сделать динамическую высоту зависящей от содержимого ...
СТАРЫЙ МЕТОД (innerView - это подвид представления)
DispatchQueue.main.async {
view.snp.makeConstraints({ (make) in
make.top.equalToSuperview().inset(45)
make.left.right.equalToSuperview().inset(12)
make.bottom.equalTo(self.innerView.snp.bottom).offset(12)
})
}
//After i add it like superView.addSubView(view)
//superView contains view, and view(dynamic height) contains innerView
НОВЫЙ МЕТОД
superView.addSubview(view)
view.snp.makeConstraints({ (make) in
make.top.equalToSuperview().inset(45)
make.left.right.equalToSuperview().inset(12)
make.bottom.equalTo(self.innerView.snp.bottom).offset(12)
})