Нарушение ограничений, когда stackView скрыт - PullRequest
0 голосов
/ 25 марта 2020

Я использую collectionView для чата. Существует код, который обнаруживает, если есть вложение, и изменяет высоту collectionViewCell с помощью

(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath

В cellForItemAt Я показываю или скрываю stackView, зависит это файл или нет ,

Как видно из print (), сначала выполняется этот метод, а затем - sizeForItemAt. Почему, когда я устанавливаю stackView.hidden = true в cellForItemAt и текстовое сообщение (тогда в sizeForItemAt я делаю высоту для текстового сообщения), нарушаются ограничения скрытого stackView?

Как можно нарушить ограничения, когда stackView скрыт? В принципе нет логи c ....

1 Ответ

0 голосов
/ 25 марта 2020

Установка элемента .isHidden = true делает НЕ удаление любых ограничений, связанных с этим элементом.

Для любого объекта пользовательского интерфейса (не только стека), если вы хотите, чтобы его «пробел» был удален, когда он скрыт, у вас есть пара опций.

1) Вставить его и другие объекты в представление стека (да, вы можете встроить представление стека в другое представление стека). Стековые представления автоматически удаляют пространство, когда упорядоченное подпредставление скрыто.

2) Добавьте дополнительное ограничение вертикального пространства для объекта над тем, который вы скрываете. Присвойте ограничениям разные приоритеты и измените приоритеты, когда вы хотите показать или скрыть связанный объект. Вот пример, который делает именно это: { ссылка }

...