Как установить приоритет сжатия двух UILabels, чтобы сделать один pu sh другим по вертикали? - PullRequest
0 голосов
/ 07 августа 2020

Одно изображение лучше тысячи слов:

Эти две метки находятся в UICollectionviewCell. Это активированные константы на этикетках:

blue.topAnchor.constraint(equalTo: container.topAnchor)
blue.leftAnchor.constraint(equalTo: container.leftAnchor)
blue.rightAnchor.constraint(equalTo: container.rightAnchor)

green.topAnchor.constraint(equalTo: bottomAnchor)
green.leftAnchor.constraint(equalTo: container.leftAnchor)
green.rightAnchor.constraint(equalTo: container.rightAnchor)
green.bottomAnchor.constraint(equalTo: container.bottomAnchor)

И то, что я пытался сделать, но, похоже, не работает:

blue.setContentHuggingPriority(.defaultLow, for: .vertical)
blue.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
green.setContentCompressionResistancePriority(.defaultHigh, for: .vertical)

Как сделать так, чтобы синяя этикетка принимала наименьшее возможное пространство, вытесненное зеленым?

Обе метки многострочные.

1 Ответ

1 голос
/ 07 августа 2020

Вам нужно установить вертикальное охват содержимого зеленой метки ниже, чем вертикальное охват содержимого синей метки.

Вот статья, которая всегда помогает мне, когда я забываю, как это работает: https://medium.com/@abhimuralidharan / ios -content-hugging-and-content-сжатие-сопротивления-приоритеты-476fb5828ef

...