Dynami c высота двух UIView в ViewController - PullRequest
0 голосов
/ 10 марта 2020

У меня есть следующий ViewController, с 3 UIViews и содержимым внутри. Красные линии - мои ограничения.

enter image description here

Черная всегда имеет фиксированную высоту.

Красный UIView имеет CollectionView внутри , который будет расти в зависимости от его элементов.

Зеленый - это UITableView, который должен уменьшаться в зависимости от размера красного UICollectionView.

Я пытался установить ограничение высоты красного (UICollectionView) больше или равно, а высота зеленого (UITableView) меньше или равна, но Swift говорит мне, чтобы установить значение топора или высоты.

Какой правильный подход для получения двух динамик c Виды внутри моего ViewController?

1 Ответ

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

Создать NSLayoutConstraint для CollectionView Высота , затем установить высоту на cellForItemAt Функция

var collHeight:NSLayoutConstraint? //In class scope

Назначить привязку высоты CollectionView к collHeight

collHeight = collectionView.heightAnchor.constraint(equalToConstant: 0)
collHeight!.isActive = true

Затем установите высоту на cellForItemAt Функция

   func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        collHeight.constant = collectionView.contentSize.height
    }

это увеличит размер высоты представления коллекции в соответствии с количеством элементов. Далее установите верхний якорь табличного представления на нижний якорь коллекционного вида

...